Словари в Python

Словари в Python

Из этой статьи вы узнаете все о словарях в языке программирования 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))

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*