Как создавать словари в цикле python
Перейти к содержимому

Как создавать словари в цикле python

  • автор:

Словари в Python

В этом руководстве вы узнаете всё о словарях в Python: как их создавать, как добавлять, удалять, как получать из них элементы, а еще познакомитесь со встроенными методами словарей.

Словарь — это неупорядоченный набор элементов. Элемент словаря представляет собой пару ключ: значение . Словари оптимизированы для получения значений по заданному ключу.

Как создать словарь

Чтобы создать словарь в Python, необходимо прописать элементы внутри фигурных скобок <> и разделить их запятыми.

В элементе содержится ключ и соответствующее значение, они записываются так: (ключ: значение) .

В словарях значения могут повторяться и быть любого типа. Ключи же повторяться не могут и должны быть неизменяемым типом (строками, числовыми типами и кортежами с неизменяемыми элементами).

# пустой словарь my_dict = <> # словарь с ключами — целочисленными значениями my_dict = # словарь с ключами разных типов my_dict = # используем dict() my_dict = dict() # словарь из последовательности, где элементы являются парами my_dict = dict([(1,'яблоко'), (2,'мяч')])

Как вы увидели выше, мы можем создать словарь с помощью встроенной функции dict() .

Как получить элементы из словаря

В отличие от других типов данных, где для доступа к элементам используется индексация, в словаре используются ключи. Они используются внутри квадратных скобок или в качестве аргумента метода get() .

При использовании квадратных скобок и отсутствии элемента в словаре вызывается ошибка KeyError. При использовании метода get() и отсутствии элемента возвращается None .

# get vs. [] для получения элементов my_dict = # Вывод: Jack print(my_dict['Имя']) # Вывод: 26 print(my_dict.get('Возраст')) # Попытка получить ключ, которого не существует, приводит к ошибке # Вывод: None print(my_dict.get('Адрес')) # KeyError print(my_dict['Адрес'])

Вывод:

Ваня
26
None
Traceback (most recent call last):
File "", line 15, in
print(my_dict['Адрес'])
KeyError: 'Адрес'

Как изменить или добавить элементы в словаре

Словари — изменяемый тип данных. Это значит, что в него можно добавить новые элементы или изменить уже существующие с помощью оператора присваивания.

Если добавляемый ключ есть в словаре, значение элемента изменяется. Если же такого ключа еще нет, то в словарь добавляется новая пара (ключ: значение) .

# Изменение словаря my_dict = # обновляем значение my_dict['Возраст'] = 27 # Вывод: print(my_dict) # добавляем элемент my_dict['Адрес'] = 'Центр города' # Вывод: print(my_dict)

Вывод:

Как удалить элементы из словаря

Удалить нужный элемент словаря по ключу можно с помощью метода pop() . Этот метод удаляет элемент с соответствующим ключом и возвращает значение.

Удалить произвольную пару (ключ, значение) можно с помощью метода popitem() . Очистить весь словарь за один раз можно с помощью метода clear() .

Также можно использовать ключевое слово del для удаления отдельных элементов или же всего словаря.

# создаем словарь squares = # удаляет определенный элемент, возвращает его значение # Вывод: 16 print(squares.pop(4)) # Вывод: print(squares) # удаляет произвольный элемент, возвращает (ключ, эзначение) # Вывод: (5, 25) print(squares.popitem()) # Вывод: print(squares) # удаляет все элементы squares.clear() # Вывод: <> print(squares) # удаляет весь словарь del squares # выдает ошибку print(squares)

Вывод:

16

(5, 25)

<>
Traceback (most recent call last):
File "", line 30, in
print(squares)
NameError: name 'squares' is not defined

Методы словарей

В таблице ниже указаны доступные методы словарей. Некоторые из них мы уже использовали в примерах выше.

Метод

Что делает

Удаляет все элементы из словаря

Возвращает неглубокую копию словаря

Возвращает словарь с ключами из seq и значениями, равными v (по умолчанию None )

Возвращает значение ключа key . Если key не существует, возвращает d (по умолчанию None )

Возвращает новый объект элементов словаря в формате (ключ, значение)

Возвращает новый объект с ключами словаря

Удаляет элемент с ключом key и возвращает его значение или d , если key не найден. Если d не было обозначено и key не найден, вызывает ошибку KeyError.

Удаляет и возвращает произвольную пару (ключ, значение) . Вызывае ошибку KeyError, если словарь пустой.

Если ключ key есть в словаре, возвращает соответствующее ему значение. Если нет, добавляет в словарь элемент с ключом key и значением d и возвращает d (по умолчанию None )

Обновляет словарь имеющимися парами ключ/значение из other , перезаписывая существующие ключи

Возвращает новый объект со значениями словаря

marks = <>.fromkeys(['математика', 'русский язык', 'физика'], 0) # Вывод: print(marks) for item in marks.items(): print(item) # Вывод: ['русский язык', 'математика', 'физика'] print(list(sorted(marks.keys())))

Вывод:


('математика', 0)
('русский язык', 0)
('физика', 0)
['русский язык', 'математика', 'физика']

Представление словарей

Представление словарей — элегантный и лаконичный способ создать новый словарь из итерируемого объекта.

Представление словарей состоит из выражения ключ: значение , за которым следует for , и всё это — внутри фигурных скобок <> .

Создадим словарь с парами чисел и их квадратов в качестве элементов:

squares = print(squares)

Вывод:

То же самое можно сделать иначе, но так будет длинее:

squares = <> for x in range(6): squares[x] = x*x print(squares)

Вывод:

В представлении словарей выражений for и if опционально может быть больше.

Необязательное выражение if поможет отфильтровать элементы для создания нового словаря.

Давайте создадим словарь только с квадратами только нечетных чисел:

# Представление словарей с опциональным if odd_squares = print(odd_squares)

Вывод:

Другие операции со словарями

Проверка на вхождение в словарь

Проверить, есть ли ключ в словаре, можно с помощью ключевого слова in . Отметим, что проверку на вхождение можно провести только над ключами, не над значениями

squares = # Вывод: True print(1 in squares) # Вывод: True print(2 not in squares) # Проверка на вхождение позволяет проверять только ключи, не значения # Вывод: False print(49 in squares)

Вывод:

True
True
False
Итерирование по словарю

Мы можем пройтись по всем ключам словаря, используя цикл for .

squares = for i in squares: print(squares[i])

Вывод:

1
9
25
49
81

Встроенные функции для словарей

Встроенные функции all() , any() , len() , cmp() , sorted() и т. д. часто используются со словарями для разных задач.

Функция

Описание

Возвращает True , если все ключи словаря = True (или если словарь пуст)

Возвращает True , если хотя бы один ключ словаря = True . Если словарь пуст, возвращает False .

Возвращает длину (количество элементов) словаря

Сравнивает элементы двух словарей (не работает в Python 3)

Возвращает новый список с отсортированными ключами словаря

# Встроенные функции для словарей squares = # Вывод: False print(all(squares)) # Вывод: True print(any(squares)) # Вывод: 6 print(len(squares)) # Вывод: [0, 1, 3, 5, 7, 9] print(sorted(squares))

Вывод:

False
True
6
[0, 1, 3, 5, 7, 9]

Словари в Python 3 — основные методы и функции

В Python есть много встроенных структур данных, используемых для хранения разных типов информации. Словарь ( dict ) — одна из таких структур, которая хранит данные в формате пар ключ-значение. Получить доступ к значениям словаря Python можно с помощью ключей. Этот материал посвящен подробному обсуждению словаря.

Создание словаря

Для создания словаря в Python необходимо передать последовательность элементов внутри фигурных скобок <> , разделив их запятыми ( , ). Каждый элемент имеет ключ и значение, выраженное парой «ключ: значение».

Значения могут быть представлять собой любые типы данных и повторяться, но ключи обязаны быть уникальными.

Следующие примеры показывают, как создавать словари Python:

Создание пустого словаря:

dict_sample = > 

Cловарь, где ключи являются целыми числами:

dict_sample = 1: 'mango', 2: 'pawpaw'> 

Создание словаря с ключами разных типов:

dict_sample = 'fruit': 'mango', 1: [4, 6, 8]> 

Можно также создать словарь, явно вызвав метод dict() :

dict_sample = dict(1:'mango', 2:'pawpaw'>) 

Словарь можно создать с помощью последовательности, как в примере внизу:

dict_sample = dict([(1,'mango'), (2,'pawpaw')]) 

Словари могут быть вложенными. Это значит, что можно создавать словари внутри существующего словаря. Например:

dict_sample =  1: 'student1': 'Nicholas', 'student2': 'John', 'student3': 'Mercy'>, 2: 'course1': 'Computer Science', 'course2': 'Mathematics', 'course3': 'Accounting'> > 

Чтобы вывести содержимое словаря, можно использовать функцию print() и передать название словаря в качестве аргумента. Например:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > print(dict_sample) 

Доступ к элементами

Чтобы получить доступ к элементам словаря, нужно передать ключ в квадратных скобках [] . Например:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > x = dict_sample["model"] print(x) 
Premio 

Был создан словарь dict_sample . Затем была создана переменная x . Ее значение — это значение ключа [«model»] из словаря.

Вот другой пример:

dict = 'Name': 'Mercy', 'Age': 23, 'Course': 'Accounting'> print("Student Name:", dict['Name']) print("Course:", dict['Course']) print("Age:", dict['Age']) 
Student Name: Mercy Course: Accounting Age: 23 

Объект словаря также имеет функцию get() , которой можно пользоваться для доступа к элементам словаря. Ее нужно добавлять к словаря через точку и затем передавать название ключа как аргумент функции. Например:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > x = dict_sample.get("model") print(x) 
Premio 

Теперь вы знаете, как получать доступ к элементам словаря с помощью разных методов. В следующем разделе речь пойдет о добавлении новых элементов в уже существующий словарь.

Добавление элементов

Существует множество способов для добавления новых элементов в словарь. Можно использовать новый ключ и присвоить ему значение. Например:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > dict_sample["Capacity"] = "1800CC" print(dict_sample) 

У нового элемента ключ «Capacity» и значение — «180CC» . Он был добавлен в качестве первого элемента словаря.

Вот другой пример. Для начала нужно создать пустой словарь:

MyDictionary = > print("An Empty Dictionary: ") print(MyDictionary) 
An Empty Dictionary: 

Словарь ничего не возвращает, потому что в нем ничего не хранится. Добавим в нему элементы, один за одним:

MyDictionary[0] = 'Apples' MyDictionary[2] = 'Mangoes' MyDictionary[3] = 20 print("\n3 elements have been added: ") print(MyDictionary) 
3 elements have been added:

Для добавления элементов были отдельно указаны ключи и соответствующие значения. Например:

MyDictionary[0] = 'Apples' 

В этом примере 0 является ключом, а «Apples» — значение.

Можно даже добавить несколько значений для одного ключа. Например:

MyDictionary['Values'] = 1, "Pairs", 4 print("\n3 elements have been added: ") print(MyDictionary) 
3 elements have been added:

В этом примере название ключа — «Value» , а все что после знака = — его значения в формате множества ( Set ).

Помимо добавления новых элементов в словарь, их можно обновлять или изменять. Об этом в следующем разделе.

Обновление элементов

После добавления значения в словарь существующий элемент словаря можно изменить. Для изменения значения используется соответствующий ключ. Например:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > dict_sample["year"] = 2014 print(dict_sample) 

В этом примере видно, что было обновлено значение ключа «year» с 2012 на 2014 .

Удаление элементов

Удалить элемент из словаря можно несколькими способами. В этом разделе они будут рассмотрены по одному:

Ключевое слово del можно использовать для удаления элемента с конкретным ключом. Например:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > del dict_sample["year"] print(dict_sample) 

Вызывается ключевое слово del , а следом за ним — название словаря. В квадратных скобках следом за словарем идет ключ элемента, который требуется удалить. В этом примере это «year» . Запись «year» удаляется из словаря.

Другой способ удалить пару ключ-значение — функция pop() с ключом записи в виде аргумента. Например:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > dict_sample.pop("year") print(dict_sample) 

Функция pop() была вызвана добавлением ее к названию словаря. В этом случае будет удалена запись с ключом «year» .

Функция popitem() удаляет последний элемент в словаре. Для нее не нужно указывать конкретный ключ. Примеры:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > dict_sample.popitem() print(dict_sample) 

Последней записью в словаре была «year» . Она пропала из словаря после вызова функции popitem() .

Что делать, если нужно удалить целый словарь? Это будет сложно и займет много времени, если пользоваться этими методами к каждому ключу. Вместо этого можно использовать ключевое слово del для целого словаря. Например:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > del dict_sample print(dict_sample) 
NameError: name 'dict_sample' is not defined 

Код вернет ошибку, потому что функция print() пытается получить доступ к словарю, который уже не существует.

В определенных случаях может потребоваться удалить все элементы словаря, оставив его пустым. Этого можно добиться, воспользовавшись функцией clear() :

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > dict_sample.clear() print(dict_sample) 

Код вернет пустой словарь, поскольку все его элементы уже удалены.

Другие распространенные методы словарей

Метод len()

С помощью этого метода можно посчитать количество элементов в словаре. Например:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > print(len(dict_sample)) 

В этом словаре три записи, поэтому метод вернет 3.

Метод copy()

Этот метод возвращает копию существующего словаря. Например:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > x = dict_sample.copy() print(x) 

Была создана копия словаря dict_sample . Она присвоена переменной x . Если вывести x в консоль, то в ней будут те же элементы, что и в словаре dict_sample .

Это удобно, потому что изменения в скопированном словаре не затрагивают оригинальный словарь.

Метод items()

Этот метод возвращает итерируемый объект. Такой объект содержит пары ключ-значение для словаря по аналогии с кортежами в списке. Метод используется, когда нужно перебрать значения словаря.

Этот метод нужно вызывать вместе со словарем, как в примере ниже:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > for k, v in dict_sample.items(): print(k, v) 
('Company', 'Toyota') ('model', 'Premio') ('year', 2012) 

Объект, который возвращает items() , можно использовать, чтобы показать изменения в словаре. Вот как это работает.

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > x = dict_sample.items() print(x) dict_sample["model"] = "Mark X" print(x) 
dict_items([('Company', 'Toyota'), ('model', 'Premio'), ('year', 2012)]) dict_items([('Company', 'Toyota'), ('model', 'Mark X'), ('year', 2012)]) 

Вывод демонстрирует, что когда вы меняете значение в словаре, объекты элементов также обновляются.

Метод fromkeys()

Этот метод возвращает словарь с указанными ключами и значениями. У него следующий синтаксис:

dictionary.fromkeys(keys, value) 

Значение требуемого параметра keys — итерируемые объекты. Оно отвечает за ключи нового словаря. Значение для параметра value указывать необязательно. Оно отвечает за значение по умолчанию для всех ключей. По умолчанию — None .

Предположим, что нужно создать словарь с тремя ключами и одинаковым значением. Это можно сделать следующим образом:

name = ('John', 'Nicholas', 'Mercy') age = 25 dict_sample = dict.fromkeys(name, age) print(dict_sample) 

В коде вверху определены ключи и одно значение. Метод fromkeys() перебирает ключи и объединяет их со значением для создания заполненного словаря.

Значение для параметра keys является обязательным. В следующем примере показано, что происходит, если параметр values не определен:

name = ('John', 'Nicholas', 'Mercy') dict_sample = dict.fromkeys(name) print(dict_sample) 

Используется значение по умолчанию, None .

Метод setdefault()

Этот метод используется, когда нужно получить значение элемента с конкретным ключом. Если ключ не найден, он будет вставлен в словарь вместе с указанным значением.

У метода следующий синтаксис:

dictionary.setdefault(keyname, value) 

В этой функции параметр keyname является обязательным. Он обозначает название ключа, значение которого нужно вернуть. Параметр value необязательный. Если в словаре уже есть ключ, параметр не будет иметь никакого эффекта. Если ключ не существует, тогда значение функции станет значением ключа. Значение по умолчанию — None .

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > x = dict_sample.setdefault("color", "Gray") print(x) 
Gray 

В словаре нет ключа color . Метод setdefault() вставляет этот ключ вместе со значением «Gray» .

Следующий пример показывает, как работает метод, если такой ключ уже есть:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > x = dict_sample.setdefault("model", "Allion") print(x) 
Premio 

Значение «Allion» не повлияло на словарь, потому что у ключа уже есть значение.

Метод keys()

Этот метод также возвращает итерируемый объект. Он является списком всех ключей в словаре. Как и метод items() , этот отображает изменения в самом словаре.

Для использования метода нужно всего лишь использовать его с именем словаря, как показано ниже:

dictionary.keys() 
dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > x = dict_sample.keys() print(x) 
dict_keys(['model', 'Company', 'year']) 

Часто этот метод используется, чтобы перебрать все ключи в словаре:

dict_sample =  "Company": "Toyota", "model": "Premio", "year": 2012 > for k in dict_sample.keys(): print(k) 
Company model year 

Выводы

Это все, что нужно знать о словарях Python. Они хранят информацию в парах «ключ: значение». «Ключ» выступает идентификатором объекта, а «значение» — это определенные данные. В Python много функций, которые могут быть использовать для извлечения и обработки данных. В этой статье были рассмотрены способы создания, изменения и удаления словаря, а также самые распространенные методы для работы с этим типом данных.

Создание словаря из отдельных списков ключей и значений в Python

В работе с Python очень часто возникает потребность в создании словаря из отдельных списков ключей и значений. Возьмем для примера два списка: один со списком стран, а другой — с их столицами.

countries = ['Россия', 'США', 'Франция'] capitals = ['Москва', 'Вашингтон', 'Париж']

Задача — создать словарь, где страны будут ключами, а столицы — соответствующими значениями.

Для решения этой задачи в Python существует несколько подходов.

Использование функции zip()

Один из наиболее простых и эффективных способов — использование встроенной функции zip() , которая возвращает итератор кортежей, где первый элемент в каждом происходит из первого передаваемого аргумента, второй — из второго и так далее. Затем итератор можно преобразовать в словарь с помощью функции dict() .

countries = ['Россия', 'США', 'Франция'] capitals = ['Москва', 'Вашингтон', 'Париж'] dictionary = dict(zip(countries, capitals))

В результате получаем требуемый словарь:

Использование цикла for

Другой подход — использование цикла for . В этом случае сначала создается пустой словарь, а затем в цикле для каждого ключа из списка ключей в словарь добавляется соответствующее значение из списка значений.

countries = ['Россия', 'США', 'Франция'] capitals = ['Москва', 'Вашингтон', 'Париж'] dictionary = <> for i in range(len(countries)): dictionary[countries[i]] = capitals[i]

В результате также получаем требуемый словарь:

Выбор подхода зависит от конкретной задачи и предпочтений программиста. Оба метода позволяют быстро и просто решить поставленную задачу.

Как создавать словари в цикле python

Питоновский словарь аналогичен HashMap в Java и Object в JavaScript.

Как создать словарь в Python: 6 способов

Пустой словарь создается с помощью фигурных скобок или функции dict():

info_dict = <> my_dict = dict() 

Словари с данными, как и в случае со списками, можно создавать несколькими способами.

Способ 1: Перечисление ключей и значений

Данные словаря перечисляются в виде пар ключ: значение через запятую и заключаются в фигурные скобки:

Способ 2: Создание словаря с помощью dict()

При использовании этого метода ключи и значения тоже придется определить вручную:

>>> my_dict = dict(name = 'Евгений', age = 28, position = 'Java-разработчик') >>> print(my_dict)

Способ 3: Создание словаря с помощью zip() и dict()

Если есть два списка, в одном из которых хранятся ключи, а в другом – значения, словарь можно создать при помощи zip() и dict():

>>> keys = ['цвет', 'размер', 'количество', 'цена'] >>> values = ['синий', '35х45х60', 5, 2500] >>> info = dict(zip(keys, values)) >>> print(info)

Способ 4: Создание словаря из списка кортежей и кортежа списков

Если имеется список кортежей, в которых первый элемент служит ключом, а второй – значением, словарь можно сформировать с помощью dict():

>>> item = [('модель', 'Aura'), ('цвет', 'пурпурный'), ('наличие', 'на складе')] >>> item_dict = dict(item) >>> print(item_dict)

Точно так же этот подход работает с кортежeм списков:

>>> employee= (['имя', 'Никита'], ['отчество', 'Сергеевич'], ['фамилия', 'Колобков'], ['возраст', 32]) >>> empl_dict = dict(employee) >>> print(empl_dict)

Способ 5: Метод fromkeys()

Если нужно создать словарь, у всех ключей которого – одинаковые значения, можно воспользоваться методом fromkeys():

>>> new_dict = dict.fromkeys(['север', 'юг', 'восток', 'запад'], 0) >>> print(new_dict)

Способ 6: Использование генератора словарей

Словари можно создавать на основе списков и строк. При этом одновременно можно проводить различные действия с числами и символами – математические операции, подсчет, сравнение и так далее:

>>> numbers = [2, 18, 5, 7, 2, 32, 6, 9, 4, 8, 9, 12, 14, 14] >>> my_dict = >>> print(my_dict)

В генераторах можно использовать преобразование типов данных и условия:

>>> st = '12 31 4 53 6 7 4 90 8 7 56 3 42' >>> my_dict = >>> print(my_dict)

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека питониста»

Особенности словарей

Начиная с Python 3.6, словари являются упорядоченными коллекциями – пары ключ: значение хранятся в словаре в порядке добавления. В отличие от строк и списков, словари не поддерживают срезы и конкатенацию, а к элементу словаря нельзя обратиться по индексу – в качестве индексов в словарях выступают ключи:

>>> my_dict = >>> print(my_dict['цвет'], my_dict[' количество ']) красный 53 кг 

Ключи в словаре не должны повторяться – если добавить в словарь ключ, идентичный существующему, Python сохранит только один ключ с последним значением:

>>> my_dict = >>> print(my_dict)

В качестве ключей можно использовать все типы данных, которые относятся к неизменяемым: int, float, Boolean (True/False), frozenset, строки, кортежи. Нельзя использовать списки, обычные множества set и словари, поскольку они являются изменяемыми. При этом в качестве значения в словарях можно использовать данные любого типа, включая словари – такие словари называются вложенными:

>>> hr_info = , 'сотрудник2': , 'сотрудник3': > >>> print(hr_info['сотрудник2']['должность']) DevOps 

Методы словарей в Python 3

Словари поддерживают некоторые методы, общие с другими типами данных, и имеют несколько своих собственных. Рассмотрим общие и уникальные методы на примерах.

Длина словаря и принадлежность элемента:

>>> my_dict = >>> print(len(my_dict)) 4 >>> print('есть на складе' if 'футболка' in my_dict else 'нет в наличии') нет в наличии 

Сумма ключей, максимальный и минимальный элементы

Функция sum() подсчитывает сумму ключей словаря и работает только в том случае, когда ключи являются числами:

>>> my_dict = >>> print(sum(my_dict)) 13 

Функции min() и max() работают для большинства типов данных:

>>> my_dict = >>> print(min(my_dict), max(my_dict)) количество цена >>> print(min(my_dict, key=len)) цена 

Объединение словарей

Словари можно объединять – если в них есть одинаковые ключи, в полученном словаре значение будет взято из последнего словаря:

>>> my_dict1 = >>> my_dict2 = >>> print(<**my_dict1, **my_dict2>)

Сравнение словарей

Словари считаются одинаковыми, если в них совпадают и ключи, и значения:

>>> my_dict = >>> my_dict2 = >>> print(my_dict == my_dict2) False 

Получение ключей, значений и элементов

Для работы с ключами используется метод keys(), со значениями – values(), с парами – items():

>>> my_dict = >>> print(my_dict.values()) dict_values(['чай', 100, 550, 256]) >>> print(my_dict.keys()) dict_keys(['напиток', 'вес', 'цена', 'количество']) >>> print(my_dict.items()) dict_items([('напиток', 'чай'), ('вес', 100), ('цена', 550), ('количество', 256)]) 

Добавление и изменение элементов

Для изменения значения какого-либо ключа используют оператор присваивания = :

>>> my_dict = >>> my_dict['имя'] = 'Евгений' >>> print(my_dict)

Если же такого ключа в словаре еще нет, новый элемент будет добавлен автоматически:

>>> my_dict = >>> my_dict['фамилия'] = 'Егоров' >>> print(my_dict)

Однако если обратиться к несуществующему элементу без присвоения ему значения, произойдет ошибка:

>>> my_dict = >>> print(my_dict['город']) Traceback (most recent call last): File "", line 1, in KeyError: 'город' 

Получение значения по ключу – get()

Чтобы избежать появления показанной выше ошибки, используют метод get(), которому можно передать значение по умолчанию – оно выведется, если такого ключа в словаре нет:

>>> my_dict = >>> print(my_dict.get('зарплата', 'не указана')) не указана 

Получение значения и/или добавление элемента с setdefault()

Другой метод для получения значения – setdefault(). Он действует двумя разными способами:

1) Если указанный ключ уже есть в словаре – возвращает его значение (даже при наличии значения по умолчанию):

>>> my_dict = >>> print(my_dict.setdefault('возраст', 'не указан')) 25 

2) Если ключа нет – вставляет элемент в словарь, возвращает значение:

>>> my_dict = >>> print(my_dict.setdefault('зарплата', 150000)) 150000 >>> print(my_dict)

Дополнение словаря

Элементы одного словаря можно «обновить», дополнить элементами другого. В случае совпадения ключей, как и при показанном ранее объединении словарей, сохраняются значения второго словаря:

>>> my_dict1 = >>> my_dict2 = >>> my_dict1.update(my_dict2) >>> print(my_dict1)

Удаление элементов словаря

Как и в случае со списками, удалять элементы из словарей можно несколькими способами:

del – удаляет элемент с заданным ключом:
>>> my_dict = >>> del my_dict['название'] >>> print(my_dict)

pop() – возвращает удаленное значение:

>>> my_dict = >>> фильм = my_dict.pop('название') >>> print(фильм) Зеленая миля 

popitem() – удаляет последний добавленный элемент и возвращает его ключ: значение в виде кортежа:

>>> my_dict = >>> movie = my_dict.popitem() >>> print(movie) ('название', 'Властелин колец') 

clear() – удаляет все элементы словаря:

>>> my_dict = >>> my_dict.clear() >>> print(my_dict) <> 

Создание копии словаря

Копия словаря создается тем же методом, что и в случае со списками – с помощью copy():

>>> my_dict = >>> new_dict = my_dict.copy() >>> print(new_dict)

Практика

Задание 1

Напишите программу, которая получает на вход две строки, и формирует из них словарь. Ключами служат слова из первой строки, значениями – целые числа из второй.

Пример ввода:

яблоки сливы груши персики манго киви апельсины 34 56 23 89 55 32 11 
keys = input().split() values = map(int, input().split()) my_dict = dict(zip(keys, values)) print(my_dict) 

Задание 2

Напишите программу, которая получает на вход строку чисел, разделенных пробелами, и формирует словарь, в котором ключами служат четные числа, а значениями – слово четное .

Пример ввода:

45 6 8 23 21 87 65 45 38 
nums = map(int, input().split()) my_dict = print(my_dict) 

Задание 3

Напишите программу, которая получает на вход строку и подсчитывает, сколько раз в ней встречается каждый символ (независимо от регистра). Результат нужно вывести без фигурных скобок.

Пример ввода:

Есть только один способ избежать критики: ничего не делайте, ничего не говорите и будьте никем. 
е-11 с-3 т-7 ь-4 -14 о-9 л-2 к-4 д-3 и-10 н-6 п-1 б-3 з-1 ж-1 а-2 р-2 :-1 ч-2 г-3 й-1 ,-1 в-1 у-1 м-1 .-1 
st = input().lower() my_dict = print(*[str(k) + '-' + str(v) for k, v in my_dict.items()]) 

Задание 4

Напишите программу, которая получает 2 слова на разных строках и определяет, являются ли эти слова анаграммами.

Пример ввода 1:

меч мяч 

Пример ввода 2:

Минотавр Норматив 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *