Словарь Python

Краткое содержание: в этом уроке вы узнаете о словаре Python Dictionary, который позволяет организовать связанную информацию.

Введение в тип Python Dictionary

Словарь Python — это коллекция пар ключ-значение, где каждый ключ связан со значением.

Значением в паре ключ-значение может быть число, строка, список, кортеж или даже другой словарь. Фактически, вы можете использовать значение любого допустимого типа в Python в качестве значения в паре ключ-значение.

Ключ в паре ключ-значение должен быть неизменяемым. Другими словами, ключ не может быть изменен, например, число, строка, кортеж и т.д.

Python использует фигурные скобки {} для определения словаря. Внутри фигурных скобок можно поместить ноль, одну или много пар ключ-значение.

В следующем примере определен пустой словарь:

empty_dict = {}
Code language: Python (python)

Как правило, вы определяете пустой словарь перед циклом, либо перед циклом for, либо перед циклом while. А внутри цикла вы добавляете пары ключ-значение в словарь.

Чтобы узнать тип словаря, вы используете функцию type() следующим образом:

empty_dict = {} print(type(empty_dict))
Code language: Python (python)

Ouptut:

<class 'dict'>
Code language: Python (python)

Следующий пример определяет словарь с некоторыми парами ключ-значение:

person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True }
Code language: Python (python)

Словарь person имеет пять пар ключ-значение, которые представляют имя, фамилию, возраст, любимые цвета и активный статус.

Доступ к значениям в словаре

Чтобы получить доступ к значению по ключу из словаря, можно использовать нотацию квадратных скобок или метод get().

1) Использование нотации квадратных скобок

Чтобы получить доступ к значению, связанному с ключом, вы помещаете ключ внутрь квадратных скобок:

dict[key]
Code language: Python (python)

Ниже показано, как получить значения, связанные с ключами first_name и last_name в словаре person:

person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } print(person['first_name']) print(person['last_name'])
Code language: Python (python)

Выход:

John Doe
Code language: Python (python)

2) Использование метода get()

Если вы попытаетесь получить доступ к несуществующему ключу, вы получите ошибку. Например:

person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } ssn = person['ssn']
Code language: Python (python)

Error:

Traceback (most recent call last): File "dictionary.py", line 15, in <module> ssn = person['ssn'] KeyError: 'ssn'
Code language: Python (python)

Чтобы избежать этой ошибки, вы можете использовать метод get() словаря:

person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } ssn = person.get('ssn') print(ssn)
Code language: Python (python)

Ouput:

None
Code language: Python (python)

Если ключ не существует, метод get() возвращает None вместо того, чтобы выдать ошибку KeyError. Обратите внимание, что None означает, что значение не существует.

Метод get() также возвращает значение по умолчанию, если ключ не существует, передавая значение по умолчанию в качестве второго аргумента.

Следующий пример возвращает строку '000-00-0000', если ключ ssn не существует в словаре person:

person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } ssn = person.get('ssn', '000-00-0000') print(ssn)
Code language: Python (python)

Выход:

000-00-0000
Code language: Python (python)

Добавление новых пар ключ-значение

Поскольку словарь имеет динамическую структуру, вы можете добавлять в него новые пары ключ-значение в любое время.

Чтобы добавить новую пару ключ-значение в словарь, вы указываете имя словаря, затем новый ключ в квадратных скобках и новое значение.

Следующий пример добавляет новую пару ключ-значение в словарь person:

person['gender'] = 'Famale'
Code language: Python (python)

Изменение значений в паре ключ-значение

Чтобы изменить значение, связанное с ключом, вы указываете имя словаря с ключом в квадратных скобках и новое значение, связанное с ключом:

dict[key] = new_value
Code language: Python (python)

Следующий пример изменяет значение, связанное с age словаря person:

person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } person['age'] = 26 print(person)
Code language: Python (python)

Вывод:

{'first_name': 'John', 'last_name': 'Doe', 'age': 26, 'favorite_colors': ['blue', 'green'], 'active': True}
Code language: Python (python)

Удаление пар ключ-значение

Чтобы удалить пару ключ-значение по ключу, используется оператор del:

del dict[key]
Code language: Python (python)

В этом синтаксисе вы указываете имя словаря и ключ, который вы хотите удалить.

Следующий пример удаляет ключ 'active' из словаря person:

person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } del person['active'] print(person)
Code language: Python (python)

Вывод:

{'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green']}
Code language: Python (python)

Циклический просмотр словаря

Чтобы просмотреть словарь, вы можете использовать цикл for для перебора пар ключ-значение, или ключей, или значений.

Обратите внимание, что начиная с Python 3.7, при циклическом просмотре словаря, вы получите пары ключ-значение в том же порядке, в котором вы их вставляли.

1) Перебор всех пар ключ-значение в словаре

Словарь Python предоставляет метод items(), который возвращает объект, содержащий список пар ключ-значение в виде кортежей в списке.

Например:

person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } print(person.items())
Code language: Python (python)

Вывод:

dict_items([('first_name', 'John'), ('last_name', 'Doe'), ('age', 25), ('favorite_colors', ['blue', 'green']), ('active', True)])
Code language: Python (python)

Для перебора всех пар ключ-значение в словаре используется цикл for с двумя переменными key и value для распаковки каждого кортежа списка:

person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } for key, value in person.items(): print(f"{key}: {value}")
Code language: Python (python)

Вывод:

first_name: John last_name: Doe age: 25 favorite_colors: ['blue', 'green'] active: True
Code language: Python (python)

Обратите внимание, что вы можете использовать любое имя переменной в цикле for. Они не обязательно должны быть key и value.

2) Перебор всех ключей в словаре

Иногда нужно просто перебрать все ключи в словаре. В этом случае можно использовать цикл for с методом keys().

Метод keys() возвращает объект, содержащий список ключей в словаре.

Например:

person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } for key in person.keys(): print(key)
Code language: Python (python)

Output:

first_name last_name age favorite_colors active
Code language: Python (python)

На самом деле, перебор всех ключей — это поведение по умолчанию при переборе словаря. Поэтому вам не нужно использовать метод keys().

Следующий код возвращает тот же результат, что и в приведенном выше примере:

person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } for key in person: print(key)
Code language: Python (python)

3) Перебор всех значений в словаре

Метод values() возвращает список значений без ключей.

Чтобы перебрать все значения в словаре, используется цикл for с методом values():

person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } for value in person.values(): print(value)
Code language: Python (python)

Вывод:

John Doe 25 ['blue', 'green'] True
Code language: Python (python)

Сводка

  • Словарь Python — это коллекция пар ключ-значение, где каждый ключ имеет соответствующее значение.
  • Используйте квадратные скобки или метод get() для доступа к значению по его ключу.
  • Используйте оператор del для удаления пары ключ-значение по ключу из словаря.
  • Используйте цикл for для перебора ключей, значений, пар ключ-значение в словаре.

Оцените статью
devanswers.ru
Добавить комментарий