Этот урок посвящен работе со словарями в Python. Рассмотрим методы и функции для удаления, копирования, извлечения и модификации элементов словаря.
Удаление элементов
Для удаления пары ключ-значение используется оператор del. Например:
sl = {'H': 17, 'a': 10, 'b': 20}
del sl['H']
print(sl) # Выведет {'a': 10, 'b': 20}
Удаление несуществующего ключа вызовет ошибку. Перед удалением рекомендуется проверять наличие ключа с помощью оператора in:
if '74' in sl:
del sl['74']
Методы словаря
pop()
pop() удаляет ключ и возвращает соответствующее значение. Если ключа нет, можно указать значение по умолчанию:
sl = {'H': 17, 'a': 10, 'b': 20}
l = sl.pop('H', 'Привет')
print(sl) # Выведет {'a': 10, 'b': 20}
print(l) # Выведет 17
l = sl.pop('x', 'Привет')
print(sl) # Выведет {'a': 10, 'b': 20}
print(l) # Выведет Привет
popitem()
popitem() удаляет и возвращает произвольную пару ключ-значение (часто последнюю добавленную).
sl = {'H': 17, 'a': 10, 'b': 20}
l = sl.popitem()
print(sl) # Выведет {'H': 17, 'a': 10} (или другой порядок, т.к. словари неупорядочены)
print(l) # Выведет кортеж (ключ, значение)
clear()
clear() очищает словарь, удаляя все пары ключ-значение.
sl.clear()
print(sl) # Выведет {}
copy()
copy() создает копию словаря. Это создает новый объект, а не просто ссылку:
sl = {'H': 17, 'a': 10, 'b': 20}
sl_copy = sl.copy()
print(id(sl), id(sl_copy)) # Выведет два разных ID
get()
get() возвращает значение по ключу. Если ключа нет, возвращает значение по умолчанию (None, если не указано):
sl = {'H': 17, 'a': 10, 'b': 20}
print(sl.get('H')) # Выведет 17
print(sl.get('x')) # Выведет None
print(sl.get('x', 'z')) # Выведет z
setdefault()
setdefault() возвращает значение по ключу. Если ключа нет, создает его со значением по умолчанию и возвращает это значение:
sl = {'H': 17, 'a': 10, 'b': 20}
print(sl.setdefault('H')) # Выведет 17
print(sl.setdefault('x', 'z')) # Выведет z
print(sl) # Выведет {'H': 17, 'a': 10, 'b': 20, 'x': 'z'}
update()
update() обновляет словарь, добавляя пары ключ-значение из другого словаря или итерируемого объекта:
sl = {'H': 17, 'a': 10}
sl1 = {'b': 20, 'c': 30}
sl.update(sl1)
print(sl) # Выведет {'H': 17, 'a': 10, 'b': 20, 'c': 30}
Получение элементов
keys()
keys() возвращает итерируемый объект, содержащий все ключи словаря.
sl = {'H': 17, 'a': 10, 'b': 20}
keys_list = list(sl.keys())
print(keys_list) # Выведет список ключей
for key in sl.keys():
print(key) # Выведет ключи по одному на строке
values()
values() возвращает итерируемый объект, содержащий все значения словаря.
values_list = list(sl.values())
print(values_list) #Выведет список значений
items()
items() возвращает итерируемый объект, содержащий все пары ключ-значение в виде кортежей.
items_list = list(sl.items())
print(items_list) # Выведет список кортежей (ключ, значение)
for key, value in sl.items():
print(f"Ключ: {key}, Значение: {value}") # Выведет пары ключ-значение
Сортировка
Функция sorted() сортирует ключи словаря. Для сортировки пар ключ-значение используется метод items():
sl = {'b': 20, 'a': 10, 'H': 17}
sorted_keys = sorted(sl)
print(sorted_keys) # Выведет отсортированный список ключей
sorted_items = sorted(sl.items())
print(sorted_items) # Выведет отсортированный список кортежей (ключ, значение)
sorted_dict = dict(sorted_items)
print(sorted_dict) # Выведет отсортированный словарь
Вложенные словари
В Python можно создавать вложенные словари:
tel = {
'Иванов Иван': {'тел': '123456789', 'город': 'Москва'},
'Петров Петр': {'тел': '987654321', 'город': 'Пенза'}
}
print(tel['Петров Петр']['город']) # Выведет Пенза
Перебор вложенного словаря:
for name, data in tel.items():
print(name)
for key, value in data.items():
print(f"t{key}: {value}")
В этом уроке рассмотрены основные методы работы со словарями в Python, включая добавление, удаление, извлечение и сортировку элементов, а также работу с вложенными словарями. Знание этих методов упрощает работу с данными, представленными в виде словарей.