Словари¶
Основные определения¶
- Словарь
Неупорядоченная коллекция объектов произвольного типа с доступом по ключу. Представлены типом
dict.- Множество
Неупорядоченная коллекция объектов произвольного типа, в которой не имеются дубликаты. Представлены типом
set.- Неупорядоченная коллекция
Коллекция, в которой элементы не индексируются и нельзя делать срезы
Создание словарей¶
>>> d = {}
>>> type(d)
<class 'dict'>
>>> d = {"Name": "John", "Last Name": "Connor"}
>>> d
{'Name': 'John', 'Last Name': 'Connor'}
Динамическое создание словарей:
# Словарь можно создать, передав список пар ключ-значение
pairs = [('Name', 'John'), ('Age', 19)]
d = dict(pairs)
print(d)
{'Name': 'John', 'Age': 19}
# Можно создавать такие пары с помощью функции zip
id = (1, 2, 3, 4,)
logins = ('Vasya', 'Petya', 'Lera')
# Функция zip упаковывает несколько последовательностей в кортежи
d = dict(zip(logins, id))
print(d)
{'Vasya': 1, 'Petya': 2, 'Lera': 3}
Добавление элементов осуществляется с помощью фигурных скобок:
>>> d['Age'] = 19
Получение элемента по ключу:
>>> d['Age']
19
Методы словарей¶
-
d.get(key)¶ Получение элемента по заданному ключу:
>>> d.get('Name') 'John' >>> d.get('Not Presented Key') None
-
d.keys()¶ Получение списка всех ключей
>>> d.keys() dict_keys(['Name', 'Last Name'])
-
d.values()¶ Получение списка всех значений в словаре
>>> d.values() dict_values(['John', 'Connor'])
-
d.items()¶ Получение списка пар ключ-значение, представленных в виде кортежей:
>>> d.items() dict_items([('Name', 'John'), ('Last Name', 'Connor')])
-
d.pop(key)¶ Извлечение элемента из словаря:
>>> d = {'Name': 'John', 'Last Name': 'Connor'} >>> d.pop('Name') 'John' >>> d {'Last Name': 'Connor'}
-
dict.fromkeys(seq, value)¶ Создаёт новый словарь, в котором ключи взяты из последовательности
seqи им установлены значения по умолчаниюvalue:>>> lst = ['uesr1', 'user2', 'user3'] >>> user_logins_with_passwords = dict.fromkeys(lst, 123456) >>> user_logins_with_passwords {'user1': 123456, 'user2': 123456, 'user3': 123456}
Задачи¶
Напишите программу, которая получает на вход набор слов и выводит на экран только уникальные. Использовать тип
set.Доработать программу, чтобы она получала от пользователя путь до файла со словами
Написать программу, которая на вход получает файл и выводит на экран какое слово сколько раз встречалось. Использовать тип
dict. Содержимое файла:слово фраза предложение слово
Пример вывода:
Путь к файлу: words.txt слово: 2 фраза: 1 предложение: 1
Создайте функцию
compute_bill, считающаю итоговую сумму товаров в чеке. Функция должна принимать 1 параметр - словарь, в котором указано количество едениц товара. Цены хранятся в словаре:prices = { "banana": 4, "apple": 2, "orange": 1.5, "pear": 3 }
Создайте программу, которая будет выводить все возможные комбинации при броске 2 игральных костей и сумму их значений. Пример вывода:
2: [(1, 1)] 3: [(1, 2), (2, 1)] ...