4.4. Словари (dictionary).

Онлайн-тренажер Python 3 для начинающих

Теория без воды. Задачи с автоматической проверкой. Подсказки на русском языке. Работает в любом современном браузере.

начать бесплатно

Самоучитель Python 3, собранный из материалов данного сайта. Предназначен в основном для тех, кто хочет изучить язык программирования Python с нуля.

Словарь (dictionary) в Python представляет собой изменяемую структуру данных, которая используется для хранения коллекции пар ключ-значение. Ключи в словаре уникальны и неизменяемы, а значения могут быть любого типа данных и могут дублироваться. Вот основные способы работы со словарями в Python:
 
Создание словаря
my_dict = {}  # Пустой словарь
my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}  # Инициализация словаря
 
Обращение к элементам словаря
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
# Получение значения по ключу
print(my_dict['name'])  # Выведет: John
# Изменение значения по ключу
my_dict['age'] = 31
# Добавление новой пары ключ-значение
my_dict['gender'] = 'male'
# Удаление элемента по ключу
del my_dict['city']
 
Вложенные словари
employees = {
    'emp1': {'name': 'John', 'age': 30},
    'emp2': {'name': 'Alice', 'age': 35}
}
print(employees['emp1']['name'])  # Выведет: John
 
Итерация по словарю
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
# Перебор ключей
for key in my_dict:
    print(key)
# Перебор значений
for value in my_dict.values():
    print(value)
# Перебор пар ключ-значение
for key, value in my_dict.items():
    print(key, value)
 
Метод `dict()`
# Создание словаря из списка кортежей
pairs = [('name', 'John'), ('age', 30), ('city', 'New York')]
my_dict = dict(pairs)

# Создание словаря из списка ключей и значений
keys = ['name', 'age', 'city']
values = ['John', 30, 'New York']
my_dict = dict(zip(keys, values))
В Python существует несколько способов создания словарей. 
 
Литеральная нотация
my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
 
Использование функции `dict()` с итерируемыми объектами
keys = ['a', 'b', 'c']
values = [1, 2, 3]
my_dict = dict(zip(keys, values)) # Создание словаря из списка ключей и значений
print(my_dict) # Вывод: {'a': 1, 'b': 2, 'c': 3}
 
С использованием генератора словарей
my_dict = {x: x**2 for x in range(1, 6)}
 
Добавление элементов по одному
my_dict = {}
my_dict['key1'] = 'value1'
my_dict['key2'] = 'value2'
my_dict['key3'] = 'value3'
print(my_dict) # Вывод: {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
 
Использование метода `fromkeys()`
keys = ['a', 'b', 'c']
default_value = 0
my_dict = dict.fromkeys(keys, default_value)
print(my_dict) # Вывод: {'a': 0, 'b': 0, 'c': 0}
 
Создание словаря с помощью генератора словарей с условиями
my_dict = {x: x**2 for x in range(1, 11) if x % 2 == 0}
print(my_dict) # Вывод: {2: 4, 4: 16, 6: 36, 8: 64, 10: 100}
 
Методы словаря
 
Метод Что изменяет
 keys() Возвращает список всех ключей в словаре.
 values() Возвращает список всех значений в словаре.
 items() Возвращает список кортежей, содержащих пары ключ-значение.
 get(key, default) Возвращает значение по указанному ключу. Если ключ отсутствует, возвращает значение по умолчанию.
 pop(key, default) Удаляет и возвращает значение по указанному ключу. Если ключ отсутствует, возвращает значение по умолчанию или вызывает исключение.
 popitem() Удаляет и возвращает произвольную пару ключ-значение из словаря.
 update(other_dict)`** Обновляет словарь, добавляя пары ключ-значение из другого словаря.
 clear() Удаляет все элементы из словаря.
 copy() Создает копию словаря.
 
1. clear(): Очищает словарь, удаляя все его элементы.
my_dict = {'a': 1, 'b': 2}
my_dict.clear()
print(my_dict)  # Вывод: {}
2. copy(): Создает копию словаря.
original_dict = {'a': 1, 'b': 2}
copied_dict = original_dict.copy()
print(copied_dict)  # Output: {'a': 1, 'b': 2}
3. fromkeys(keys, value=None): Создает новый словарь с ключами из последовательности `keys` и значениями, установленными на `value`.
keys = ['a', 'b', 'c']
new_dict = dict.fromkeys(keys, 0)
print(new_dict)  # Output: {'a': 0, 'b': 0, 'c': 0}
4. get(key, default=None): Возвращает значение для указанного ключа `key`, если ключ существует в словаре, иначе возвращает `default`.
my_dict = {'a': 1, 'b': 2}
value = my_dict.get('a')
print(value)  # Output: 1
5. items(): Возвращает представление (view) пар (ключ, значение) в словаре.
my_dict = {'a': 1, 'b': 2}
items = my_dict.items()
print(items)  # Output: dict_items([('a', 1), ('b', 2)])
6. keys(): Возвращает представление (view) всех ключей в словаре.
my_dict = {'a': 1, 'b': 2}
keys = my_dict.keys()
print(keys)  # Output: dict_keys(['a', 'b'])
7. values(): Возвращает представление (view) всех значений в словаре.
my_dict = {'a': 1, 'b': 2}
values = my_dict.values()
print(values)  # Output: dict_values([1, 2])
8. pop(key, default=None): Удаляет ключ `key` из словаря и возвращает соответствующее значение. Если ключ не найден, возвращает `default`.
my_dict = {'a': 1, 'b': 2}
value = my_dict.pop('a')
print(value)  # Output: 1
print(my_dict)  # Output: {'b': 2}
9. popitem(): Удаляет и возвращает произвольную пару (ключ, значение) из словаря.
my_dict = {'a': 1, 'b': 2}
item = my_dict.popitem()
print(item)  # Output: ('b', 2)
print(my_dict)  # Output: {'a': 1}
10. setdefault(key, default=None): Возвращает значение для указанного ключа `key`. Если ключ не существует, добавляет ключ со значением `default` в словарь.
my_dict = {'a': 1, 'b': 2}
value = my_dict.setdefault('c', 3)
print(value)  # Output: 3
print(my_dict)  # Output: {'a': 1, 'b': 2, 'c': 3}
11. update([other]): Обновляет словарь, добавляя пары ключ-значение из другого словаря или итерируемого объекта.
my_dict = {'a': 1, 'b': 2}
my_dict.update({'c': 3})
print(my_dict)  # Output: {'a': 1, 'b': 2, 'c': 3}

 

категории

ТЕОРИЯ

  • Введение в Python
  • Основы программирования на Python
  • Управляющие конструкции
  • Структуры данных
  • Функции и модули
  • Обработка исключений
  • Работа с файлами и потоками
  • файловая система
  • Объектно-ориентированное программирование (ООП)
  • Регулярные выражения
  • Дополнительные темы

Мы в соцсетях