Из этой статьи вы узнаете все о словарях в языке программирования Python; как они создаются, доступ к элементам, добавление и удаление элементов, а также различные встроенные методы Python.
Что такое словарь в Python?
Словарь Python представляет собой неупорядоченную коллекцию элементов. В то время как другие составные типы данных имеют только значение как элемент, словарь имеет пару ключ:значение.
Словари оптимизированы для получения значений, когда ключ известен.
Как создать словарь?
Создать словарь очень просто, нужно поместить элементы в виде пар ключ:значение в фигурные скобки {}, разделяя их запятой.
Каждый элемент словаря имеет ключ и соответствующее значение.
Хотя значения могут быть любого типа данных и могут повторяться, ключи должны быть неизменного типа (строка, число или кортеж с неизменяемыми элементами) и должны быть уникальными для этого словаря.
# пустой словарь my_dict = {} # словарь с ключами типа integer (число) my_dict = {1: 'apple', 2: 'ball'} # словарь с со смешенным типом ключей my_dict = {'name': 'John', 1: [2, 4, 3]} # создание словаря при помощи dict() my_dict = dict({1:'apple', 2:'ball'})
Как вы можете видеть выше, мы также можем создать словарь, используя встроенную функцию dict().
Как получить доступ к элементам из словаря?
В то время как индексирование используется с другими типами контейнеров для доступа к значениям, словарь использует ключи. Ключ можно использовать либо в квадратных скобках, либо с помощью метода get().
Разница при использовании get() заключается в том, что он возвращает None вместо KeyError, если ключ не найден.
my_dict = {'name':'Jack', 'age': 26} # Результат: Jack print(my_dict['name']) # Результат: 26 print(my_dict.get('age'))
Как изменить или добавить элементы в словарь?
Словарь - изменяемый тип данных. Мы можем добавить новые элементы или изменить значение существующих элементов, используя оператор присваивания.
Если ключ уже присутствует, значение обновляется, иначе в словарь добавляется новая пара ключ:значение.
my_dict = {'name':'Jack', 'age': 26} # обновляем значение my_dict['age'] = 27 # Результат: {'age': 27, 'name': 'Jack'} print(my_dict) # добавляем элемент my_dict['address'] = 'Downtown' # Результат: {'address': 'Downtown', 'age': 27, 'name': 'Jack'} print(my_dict)
Как удалить элементы из словаря Python?
Мы можем удалить определенный элемент в словаре, используя метод pop(). Этот метод удаляет элемент с предоставленным ключом и возвращает значение.
Метод popitem() может использоваться для удаления и возврата произвольного элемента (ключ, значение) из словаря. Все элементы сразу можно удалить, используя метод clear().
Мы также можем использовать ключевое слово del для удаления отдельных элементов или всего словаря.
# создаем словарь squares = {1:1, 2:4, 3:9, 4:16, 5:25} # удалить определенный элемент словаря # результат: 16 print(squares.pop(4)) # результат: {1: 1, 2: 4, 3: 9, 5: 25} print(squares) # удалить случайный элемент из словаря # результат: (1, 1) print(squares.popitem()) # результат: {2: 4, 3: 9, 5: 25} print(squares) # удалить определенный элемент словаря del squares[5] # результат: {2: 4, 3: 9} print(squares) # удалить все из словаря squares.clear() # результат: {} print(squares) # удалить словарь del squares # выведет ошибку # print(squares)
Методы словарей Python
Методы, доступные для использования со словарем, приведены в таблице ниже. Некоторые из них уже были использованы в приведенных выше примерах.
- clear() - Удалить все элементы из словаря.
- copy() - Возвращает копию словаря.
- fromkeys(seq [, v]) - Возвращает новый словарь с ключами от seq и значением, равным v (по умолчанию None).
- get(key [, d]) - Возвращает значение ключа. Если ключ не существует, возвращает d (по умолчанию None).
- items() - Возвращает новый вид элементов словаря (ключ, значение).
- keys() - Возвращает новый вид ключей словаря.
- pop(key [, d]) - Удалить элемент с ключом и вернуть его значение или d, если ключ не найден. Если d не указано и ключ не найден, выдается KeyError.
- popitem() - Удалить и вернуть произвольный элемент (ключ, значение). Вызывает KeyError, если словарь пуст.
- setdefault(ключ [, d]) - Если ключ находится в словаре, вернуть его значение. Если нет, введите ключ со значением d и верните d (по умолчанию None).
- update([другое]) - Обновить словарь парами ключ / значение из других, перезаписывая существующие ключи.
- values() - Возвращает новое представление значений словаря
Вот несколько примеров использования этих методов.
marks = {}.fromkeys(['Math','English','Science'], 0) # результат: {'English': 0, 'Math': 0, 'Science': 0} print(marks) for item in marks.items(): print(item) # результат: ['English', 'Math', 'Science'] list(sorted(marks.keys()))
Генератор словаря Python
Генератор словаря - это элегантный и лаконичный способ создания нового словаря из итерируемых объектов в Python.
Генерация словаря состоит из пары выражений (ключ: значение), за которой следует инструкция внутри фигурных скобок {}.
Вот пример создания словаря, в котором каждый элемент является парой числа и его квадрата.
squares = {x: x*x for x in range(6)} # Результат: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25} print(squares)
Другие операции со словарями в Python
Проверка на на наличие элемента в словаре
Мы можем проверить, находится ли ключ в словаре или нет, используя ключевое слово in. Обратите внимание, что тест на наличие элемента предназначен только для ключей, а не для значений.
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# результат: True print(1 in squares) # результат: True print(2 not in squares) # проверка работает только для ключей, а не для значений # результат: False print(49 in squares)
Перебор элементов словаря
Используя цикл for, мы можем перебирать элементы в словаре.
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} for i in squares: print(squares[i])
Встроенные функции и словари
Встроенные функции, такие как all(), any(), len(), cmp(), sorted() и т.д., обычно используются со словарем для выполнения различных задач.
- all() - Возвращает True, если все ключи словаря истинны (или если словарь пуст).
- any() - Возвращает True, если любой ключ словаря равен true. Если словарь пуст, вернет False.
- len() - Возвращает длину (количество элементов) в словаре.
- cmp() - Сравнивает элементы двух словарей.
- sorted() - Возвращает новый отсортированный список ключей в словаре.
Вот несколько примеров, которые используют встроенные функции Python для работы со словарем.
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} # результат: 5 print(len(squares)) # результат: [1, 3, 5, 7, 9] print(sorted(squares))
Оставить комментарий