Краткое содержание: в этом уроке вы узнаете о словаре Python Dictionary, который позволяет организовать связанную информацию.
- Введение в тип Python Dictionary
- Доступ к значениям в словаре
- 1) Использование нотации квадратных скобок
- 2) Использование метода get()
- Добавление новых пар ключ-значение
- Изменение значений в паре ключ-значение
- Удаление пар ключ-значение
- Циклический просмотр словаря
- 1) Перебор всех пар ключ-значение в словаре
- 2) Перебор всех ключей в словаре
- 3) Перебор всех значений в словаре
- Сводка
Введение в тип Python Dictionary
Словарь Python — это коллекция пар ключ-значение, где каждый ключ связан со значением.
Значением в паре ключ-значение может быть число, строка, список, кортеж или даже другой словарь. Фактически, вы можете использовать значение любого допустимого типа в Python в качестве значения в паре ключ-значение.
Ключ в паре ключ-значение должен быть неизменяемым. Другими словами, ключ не может быть изменен, например, число, строка, кортеж и т.д.
Python использует фигурные скобки {}
для определения словаря. Внутри фигурных скобок можно поместить ноль, одну или много пар ключ-значение.
В следующем примере определен пустой словарь:
Code language: Python (python)empty_dict = {}
Как правило, вы определяете пустой словарь перед циклом, либо перед циклом for, либо перед циклом while. А внутри цикла вы добавляете пары ключ-значение в словарь.
Чтобы узнать тип словаря, вы используете функцию type()
следующим образом:
Code language: Python (python)empty_dict = {} print(type(empty_dict))
Ouptut:
Code language: Python (python)<class 'dict'>
Следующий пример определяет словарь с некоторыми парами ключ-значение:
Code language: Python (python)person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True }
Словарь person
имеет пять пар ключ-значение, которые представляют имя, фамилию, возраст, любимые цвета и активный статус.
Доступ к значениям в словаре
Чтобы получить доступ к значению по ключу из словаря, можно использовать нотацию квадратных скобок или метод get()
.
1) Использование нотации квадратных скобок
Чтобы получить доступ к значению, связанному с ключом, вы помещаете ключ внутрь квадратных скобок:
Code language: Python (python)dict[key]
Ниже показано, как получить значения, связанные с ключами first_name
и last_name
в словаре person
:
Code language: Python (python)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
2) Использование метода get()
Если вы попытаетесь получить доступ к несуществующему ключу, вы получите ошибку. Например:
Code language: Python (python)person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } ssn = person['ssn']
Error:
Code language: Python (python)Traceback (most recent call last): File "dictionary.py", line 15, in <module> ssn = person['ssn'] KeyError: 'ssn'
Чтобы избежать этой ошибки, вы можете использовать метод get()
словаря:
Code language: Python (python)person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } ssn = person.get('ssn') print(ssn)
Ouput:
Code language: Python (python)None
Если ключ не существует, метод get()
возвращает None
вместо того, чтобы выдать ошибку KeyError
. Обратите внимание, что None
означает, что значение не существует.
Метод get()
также возвращает значение по умолчанию, если ключ не существует, передавая значение по умолчанию в качестве второго аргумента.
Следующий пример возвращает строку '000-00-0000'
, если ключ ssn
не существует в словаре person
:
Code language: Python (python)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
Добавление новых пар ключ-значение
Поскольку словарь имеет динамическую структуру, вы можете добавлять в него новые пары ключ-значение в любое время.
Чтобы добавить новую пару ключ-значение в словарь, вы указываете имя словаря, затем новый ключ в квадратных скобках и новое значение.
Следующий пример добавляет новую пару ключ-значение в словарь person
:
Code language: Python (python)person['gender'] = 'Famale'
Изменение значений в паре ключ-значение
Чтобы изменить значение, связанное с ключом, вы указываете имя словаря с ключом в квадратных скобках и новое значение, связанное с ключом:
Code language: Python (python)dict[key] = new_value
Следующий пример изменяет значение, связанное с age
словаря person
:
Code language: Python (python)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}
Удаление пар ключ-значение
Чтобы удалить пару ключ-значение по ключу, используется оператор del
:
Code language: Python (python)del dict[key]
В этом синтаксисе вы указываете имя словаря и ключ, который вы хотите удалить.
Следующий пример удаляет ключ 'active'
из словаря person
:
Code language: Python (python)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']}
Циклический просмотр словаря
Чтобы просмотреть словарь, вы можете использовать цикл for
для перебора пар ключ-значение, или ключей, или значений.
Обратите внимание, что начиная с Python 3.7, при циклическом просмотре словаря, вы получите пары ключ-значение в том же порядке, в котором вы их вставляли.
1) Перебор всех пар ключ-значение в словаре
Словарь Python предоставляет метод items()
, который возвращает объект, содержащий список пар ключ-значение в виде кортежей в списке.
Например:
Code language: Python (python)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)])
Для перебора всех пар ключ-значение в словаре используется цикл for
с двумя переменными key
и value
для распаковки каждого кортежа списка:
Code language: Python (python)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
Обратите внимание, что вы можете использовать любое имя переменной в цикле for
. Они не обязательно должны быть key
и value
.
2) Перебор всех ключей в словаре
Иногда нужно просто перебрать все ключи в словаре. В этом случае можно использовать цикл for
с методом keys()
.
Метод keys()
возвращает объект, содержащий список ключей в словаре.
Например:
Code language: Python (python)person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } for key in person.keys(): print(key)
Output:
Code language: Python (python)first_name last_name age favorite_colors active
На самом деле, перебор всех ключей — это поведение по умолчанию при переборе словаря. Поэтому вам не нужно использовать метод keys()
.
Следующий код возвращает тот же результат, что и в приведенном выше примере:
Code language: Python (python)person = { 'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green'], 'active': True } for key in person: print(key)
3) Перебор всех значений в словаре
Метод values()
возвращает список значений без ключей.
Чтобы перебрать все значения в словаре, используется цикл for с методом values()
:
Code language: Python (python)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
Сводка
- Словарь Python — это коллекция пар ключ-значение, где каждый ключ имеет соответствующее значение.
- Используйте квадратные скобки или метод
get()
для доступа к значению по его ключу. - Используйте оператор
del
для удаления пары ключ-значение по ключу из словаря. - Используйте цикл
for
для перебора ключей, значений, пар ключ-значение в словаре.