Лабораторная работа №9. Словари
Словарь - неупорядоченная структура данных, которая позволяет хранить пары «ключ — значение».
Хранят ключи и их объекты, где ключ – это имя объекта в словаре.
Создание словаря в Python
Создание через функцию
dict1 = dict()
Создание через фигурные скобки
dict1 = {}
#Создание через функцию:
dict1 = dict(car='машина', apple='яблоко')
#Создание через фигурные скобки:
dict2 = {'car': 'машина', 'apple': 'яблоко'}
Изменение словаря
dict1 = {
'car': 'машина',
'apple': 'яблоко'
}
dict1['orange'] = 'апельсин'
Удаление ключа
dict = {
'car': 'машина’,
'apple': 'яблоко’,
'orange': 'апельсин' }
del dict['orange']
Перебор элементов в словаре
dict1 = {
'car': 'машина',
'apple': 'яблоко'
}
for key in dict1:
print(key, dict1[key])
Методы словаря
1. dict.get(key[, default])
Возвращает значение, соответствующее ключу. Если ключ не найден, возвращает значение по умолчанию (если указано) или None.
my_dict = {'a': 1, 'b': 2}
print(my_dict.get('a')) # 1
print(my_dict.get('c', 3)) # 3 (по умолчанию)
2. dict.keys()
Возвращает представление ключей словаря.
my_dict = {'a': 1, 'b': 2}
print(my_dict.keys()) # dict_keys(['a', 'b'])
3. dict.values()
Возвращает представление значений словаря.
my_dict = {'a': 1, 'b': 2}
print(my_dict.values()) # dict_values([1, 2])
4. dict.items()
Возвращает представление пар «ключ-значение».
my_dict = {'a': 1, 'b': 2}
print(my_dict.items()) # dict_items([('a', 1), ('b', 2)])
5. dict.update([other])
Обновляет словарь, добавляя пары «ключ-значение» из другого словаря или из итерируемого объекта.
my_dict = {'a': 1, 'b': 2}
my_dict.update({'b': 3, 'c': 4})
print(my_dict) # {'a': 1, 'b': 3, 'c': 4}
6. dict.pop(key[, default])
Удаляет ключ и возвращает его значение. Если ключ не найден, возвращает значение по умолчанию.
my_dict = {'a': 1, 'b': 2}
my_dict.update({'b': 3, 'c': 4})
print(my_dict) # {'a': 1, 'b': 3, 'c': 4}
7. dict.popitem()
Удаляет и возвращает пару «ключ-значение» из словаря. В Python 3.7+ это будет последняя добавленная пара.
my_dict = {'a': 1, 'b': 2}
my_dict.update({'b': 3, 'c': 4})
print(my_dict) # {'a': 1, 'b': 3, 'c': 4}
8. dict.clear()
Удаляет все элементы из словаря.
my_dict = {'a': 1, 'b': 2}
my_dict.update({'b': 3, 'c': 4})
print(my_dict) # {'a': 1, 'b': 3, 'c': 4}
9. dict.copy()
Возвращает поверхностную копию словаря.
my_dict = {'a': 1, 'b': 2}
my_dict.update({'b': 3, 'c': 4})
print(my_dict) # {'a': 1, 'b': 3, 'c': 4}
Задания для самостоятельной работы
- Напишите функцию word_frequency(text), которая принимает строку text и возвращает словарь, где ключи — это слова, а значения — количество их вхождений в тексте.
- Напишите функцию invert_dict(d), которая принимает словарь d и возвращает новый словарь, где ключи и значения поменяны местами. Если два ключа имеют одно и то же значение, сохраните их в виде списка.
- Напишите функцию group_by_length(words), которая принимает список слов и возвращает словарь, где ключ — длина слова, а значение — список слов этой длины.
- Напишите функцию char_frequency(s), которая принимает строку s и возвращает словарь, где ключи — это символы, а значения — количество их вхождений в строке.
- Напишите функцию merge_dicts(dict1, dict2), которая объединяет два словаря. Если ключи совпадают, сохранить суммы их значений.
- Напишите функцию most_frequent_value(d), которая возвращает значение, которое встречается чаще всего в словаре. Если таких значений несколько, вернуть любое из них.