0 знаков
26. Методы словарей и функция len() в Python
Кратко- Еще раз вспомним как создавать словари в Python.
- Чтобы удалить элемент словаря используйте ключевое слово
del.- С помощью метода
pop()можно также удалить ключ словаря.- Чем отличается «удаление» от «очистки» словаря.
Введение
В предыдущем уроке разобрались с внутренним устройством словарей и научились их сортировать. Вы уже неплохо разбираетесь в методах списков и знаете пару основных методов словарей. Давайте углубим знания и познакомимся с оставшимися основными методами словарей и общей для всех итерируемых объектов функцией len().
Методы словарей в Python
Если вы забыли, как создаются словари, добавляются элементы и как к ним обращаются в Python, вернитесь к первому уроку про словари на пару секунд, чтобы освежить знания. Для начала создадим словарь:
numbers = {'One': 1, 'Two': 2, 'Four': 4, 'Three': 3} Чтобы удалить элемент из словаря, вы можете использовать ключевое слово del, после которого указывается имя словаря и в квадратных скобках ключ, который требуется удалить.
del numbers['One'] Так же удалить элемент можно при помощи метода pop(), который удаляет ключ и возвращает значение:
numbers.pop('One') # => 1 Если ключа не существует, то будет выброшено исключения KeyError. Про исключения поговорим познее. Метод pop() имеет второй необязательный параметр, который будет возвращаться, если ключа не существует. Например, выведем слово Empty, если такого ключа нет:
numbers.pop('Five', 'Empty') На метод pop() похож метод get(), который просто возвращает значение элемента по указанному ключу или None, если такого ключа не существует. В отличие от метода pop(), метод get() не удаляет элемент и не выбрасывает исключения, если ключ отсутствует. Во второй необязательный параметр метода get() можно указать возвращаемое значение, в случае отсутствия ключа, вместо стандартного значения None.
numbers = {'One': 1, 'Two': 2, 'Four': 4, 'Three': 3}
numbers.get('Five', 'Empty') # => Empty Есть метод popitem(), который удаляет последний элемент в словаре и возвращает кортеж из двух элементов: ключа и значения:
numbers.popitem() # => ('Three', 3) Вернемся к ключевому слову del. При помощи его можно удалить не только ключ, но и весь словарь.
del numbers
print(numbers) Не путайте понятия «удалить» и «очистить». После удаления словаря и попытке к нему обратиться (в примере выше, напечатать его) поднимется исключение NameError (поговорим о них позднее).
Чтобы очистит словарь, то есть удалить все элементы в нем, используйте метод clear().
numbers.clear() Помните, в уроке про типы данных и переменные мы говорили, что при присваивании одной переменной другой, копируется не значение, а ссылка. То есть если вы хотите создать новый словарь и скопировать элементы из старого таким образом:
numbers = {'One': 1, 'Two': 2, 'Four': 4, 'Three': 3}
a = numbers
a['One'] = 5
numbers # => {'One': 5, 'Two': 2, 'Four': 4, 'Three': 3} При изменении элементов нового словаря, вы будете менять на самом деле элементы старого словаря. Чтобы такого не происходило, используйте метод copy():
a = numbers.copy() Иногда из имеющегося итерируемого объекта, например, кортежа или списка, вам необходимо сделать словарь. Это можно сделать при помощи метода fromkeys(), который принимает два параметра: итерируемый объект (например, кортеж) и необязательный параметр, который является значением по умолчанию для каждого ключа:
name = ('Иванов', 'Петров', 'Сидоров')
age = 30
dict_name = dict.fromkeys(name, age)
dict_name # => {'Иванов': 30, 'Петров': 30, 'Сидоров': 30} С методом setdefault() вы уже познакомились в первом уроке про словари, поэтому можете вернуться, чтобы его вспомнить.
Для обновления словаря, то есть добавления новых элементов и перезаписи уже имеющихся ключей, существует метод update(), который не возвращает новый словарь, а перезаписывает тот, к которому применен:
numbers = {'One': 1, 'Two': 2, 'Four': 4, 'Three': 3}
numbers_new = {'One': 6, 'Five': 5}
numbers.update(numbers_new) # => None
numbers # => {'One': 6, 'Two': 2, 'Four': 4, 'Three': 3, 'Five': 5} Функция len()
До этого момента мы ни разу не говорили про функцию len(), которая возвращает количество элементов в итерируемом объекте (строка, список, словарь и т.д.):
# словарь
d = {4: 5, 1: 1, 3: 12, 2: 3}
len(d) # => 4
# строка
s = "Hello"
len(s) # => 5 Как вариант (не самый лучший, конечно), функцию len() можно использовать в конструкции for для перебора элементов:
s = "Hello"
for i in range(len(s)):
print(s[i]) В этом уроке мы познакомились с оставшимися, ранее не затронутыми, методами словарей в Python и впервые узнали о функции len() для подсчета количества элементов в итерируемых объектах.
В следующем уроке мы начнем знакомство с множествами в Python, их особенностями и основными методами.
Тест
Похожие уроки Codebra
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ