Словари
Привет! Сегодня мы поговорим о Словарях в Python.
Словарь (dict) в Python - это изменяемая коллекция, которая предоставляет связи между ключами и значениями. В отличие от списков, в словарях элементы хранятся не по порядку, а по ключам.
Зачем нужны словари?
Словари идеально подходят для организации данных в виде пар "ключ-значение". Они позволяют эффективно извлекать и обновлять значения, а также обеспечивают быстрый доступ к данным по ключу. Например, вместо хранения информации в двух списках (например, список имен и список возрастов), можно использовать словарь.
Создание
Словарь можно создать при помощи функции dict() или используя фигурные скобки {}. Как и в списках и кортежах, значения словарей могут быть разных типов данных, но ключи обязательно должны быть неизменяемого типа данных (строки, числа, кортежи).
empty_dict = dict() # {}
filled_dict = {'name': 'John', 'age': 25, 'city': 'New York'} # {'name': 'John', 'age': 25, 'city': 'New York'}
from_lists = dict(zip(['a', 'b', 'c'], [1, 2, 3])) # {'a': 1, 'b': 2, 'c': 3}
from_string = {char: ord(char) for char in 'abc'} # {'a': 97, 'b': 98, 'c': 99}
from_tuple = dict([('x', 1), ('y', 2)]) # {'x': 1, 'y': 2}
Взаимодействия
Вывод словаря
Вывод словаря можно реализовать при помощи функции print() двумя способами: полностью и частично.
print(filled_dict) # {'name': 'John', 'age': 25, 'city': 'New York'}
print(filled_dict['name']) # John
Добавление и изменение элементов словарей
Добавление и изменение элементов словарей выполняется с указанием ключа, значение которого необходимо изменить
filled_dict['gender'] = 'Male' # Добавление элемента
filled_dict['age'] = 26 # Изменение значения элемента
Вложенные словари и генераторы словарей
Синтаксис вложенных словарей и генераторов словарей похож на аналогичные конструкции других коллекций
nested_dict = {'person': {'name': 'Alice', 'age': 30}}
dict_generator = {x: x**2 for x in range(5)}
Методы словарей
-
Метод clear() очищает словарь
a = {1, 2, 3} a.clear() print(a) # {}
-
Метод copy() создаёт копию словаря
a = {1, 2, 3} b = {3, 4, 5} print(a.difference(b)) # {1, 2}
-
Метод get() возвращает значение по ключу. Если нет ключа, то возвращает None
a = {1, 2, 3} a.discard(2) print(a) # {1, 3} a.discard(6) print(a) # {1, 3}
-
Метод items() возвращает пары ключ-значение в виде кортежей
a = {1, 2, 3} b = {3, 4, 5} print(a.intersection(b)) # {3}
-
Метод keys() возвращает все ключи словаря
a = {1, 2, 3, 4, 5} b = {2, 3, 4} print(b.issubset(a)) # True
-
Метод pop() удаляет и возвращает случайное значение по ключу. Если ключа нет, можно указать значение по умолчанию
a = {1, 2, 3, 4, 5} b = {2, 3, 4} print(a.issuperset(b)) # True
-
Метод popitem() удаляет и возвращает последнюю пару ключ-значение
a = {1, 2, 3} a.pop() print(a) # {1, 2}
-
Метод setdefault() возвращает значение по ключу. Если ключа нет, добавляет ключ со значением по умолчанию
a = {1, 2, 3} a.remove(3) print(a) # {1, 2} a.remove(6) # вызывает ошибку
-
Метод update() обновляет словарь элементами из другого словаря или коллекции
a = {1, 2, 3} b = {3, 4, 5} print(a.symmetric_difference(b)) # {1, 2, 4, 5}
-
Метод values() возвращает все значения словаря
a = {1, 2, 3} b = {3, 4, 5} print(a.union(b)) # {1, 2, 3, 4, 5}
-
Метод fromkeys() создаёт новый словарь с заданными ключами и значением по умолчанию
a = {1, 2, 3} b = {3, 4, 5} print(a.union(b)) # {1, 2, 3, 4, 5}
Функции списков
Функция len() возвращает длину ckjdf
a = {1, 2, 3, 4}
print(len(a)) # 4
Функция sum() возвращает сумму элементов множества (если в списке есть не числа, то будет ошибка)
a = {1, 2, 3, 4}
print(sum(a)) # 10
Функция min() возвращает наименьший элемент множества (если в множестве есть переменные разных типов данных, то будет ошибка)
a = {1, 2, 3, 4}
print(min(a)) # 1
b = {'a', 'b', 'c', 'd'}
print(min(b)) # a
Функция max() возвращает наибольший элемент множества (если в множестве есть переменные разных типов данных, то будет ошибка)
a = {1, 2, 3, 4}
print(max(a)) # 4
b = {'a', 'b', 'c', 'd'}
print(max(b)) # d
Оператор in
Оператор списка in работает точно также как и в цикле с функцией range. Он проверяет есть ли данный элемент в множестве
a = {1, 2, 3, 4}
print(2 in a) # True
print(12 in a) # False
Вывод элементов списка
При выводе множества его можно "распаковать" при помощи символа *, то есть убрать из вывода символы, которые дают нам понять что это множество: фигурные скобки, запятые и кавычки ([],'')
a = {1, 2, 3, 'a'}
print(a) # (1, 2, 3, 'a')
print(*a) # 1 2 3 a
В следующем уроке мы рассмотрим словари и их применение в Python.