Искать
Вы превысили запрос на
0 знаков

26. Методы словарей и функция len() в Python

Не пройден
0
0

Кратко

- Еще раз вспомним как создавать словари в Python.

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

- С помощью метода pop() можно также удалить ключ словаря.

- Чем отличается «удаление» от «очистки» словаря.

Введение

В предыдущем уроке разобрались с внутренним устройством словарей и научились их сортировать. Вы уже неплохо разбираетесь в методах списков и знаете пару основных методов словарей. Давайте углубим знания и познакомимся с оставшимися основными методами словарей и общей для всех итерируемых объектов функцией len().

Методы словарей в Python

Если вы забыли, как создаются словари, добавляются элементы и как к ним обращаются в Python, вернитесь к первому уроку про словари на пару секунд, чтобы освежить знания. Для начала создадим словарь:

Пример (python)
numbers = {'One': 1, 'Two': 2, 'Four': 4, 'Three': 3} 

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

Пример (python)
del numbers['One'] 

Так же удалить элемент можно при помощи метода pop(), который удаляет ключ и возвращает значение:

Пример (python)
numbers.pop('One') # => 1 

Если ключа не существует, то будет выброшено исключения KeyError. Про исключения поговорим познее. Метод pop() имеет второй необязательный параметр, который будет возвращаться, если ключа не существует. Например, выведем слово Empty, если такого ключа нет:

Пример (python)
numbers.pop('Five', 'Empty') 

На метод pop() похож метод get(), который просто возвращает значение элемента по указанному ключу или None, если такого ключа не существует. В отличие от метода pop(), метод get() не удаляет элемент и не выбрасывает исключения, если ключ отсутствует. Во второй необязательный параметр метода get() можно указать возвращаемое значение, в случае отсутствия ключа, вместо стандартного значения None.

Пример (python)
numbers = {'One': 1, 'Two': 2, 'Four': 4, 'Three': 3}
numbers.get('Five', 'Empty') # => Empty 

Есть метод popitem(), который удаляет последний элемент в словаре и возвращает кортеж из двух элементов: ключа и значения:

Пример (python)
numbers.popitem() # => ('Three', 3) 

Вернемся к ключевому слову del. При помощи его можно удалить не только ключ, но и весь словарь.

Пример (python)
del numbers
print(numbers) 

Не путайте понятия «удалить» и «очистить». После удаления словаря и попытке к нему обратиться (в примере выше, напечатать его) поднимется исключение NameError (поговорим о них позднее).

Чтобы очистит словарь, то есть удалить все элементы в нем, используйте метод clear().

Пример (python)
numbers.clear() 

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

Пример (python)
numbers = {'One': 1, 'Two': 2, 'Four': 4, 'Three': 3}

a = numbers
a['One'] = 5

numbers # => {'One': 5, 'Two': 2, 'Four': 4, 'Three': 3} 

При изменении элементов нового словаря, вы будете менять на самом деле элементы старого словаря. Чтобы такого не происходило, используйте метод copy():

Пример (python)
a = numbers.copy() 

Иногда из имеющегося итерируемого объекта, например, кортежа или списка, вам необходимо сделать словарь. Это можно сделать при помощи метода fromkeys(), который принимает два параметра: итерируемый объект (например, кортеж) и необязательный параметр, который является значением по умолчанию для каждого ключа:

Пример (python)
name = ('Иванов', 'Петров', 'Сидоров')
age = 30
dict_name = dict.fromkeys(name, age)
dict_name # => {'Иванов': 30, 'Петров': 30, 'Сидоров': 30} 

С методом setdefault() вы уже познакомились в первом уроке про словари, поэтому можете вернуться, чтобы его вспомнить.

Для обновления словаря, то есть добавления новых элементов и перезаписи уже имеющихся ключей, существует метод update(), который не возвращает новый словарь, а перезаписывает тот, к которому применен:

Пример (python)
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(), которая возвращает количество элементов в итерируемом объекте (строка, список, словарь и т.д.):

Пример (python)
# словарь  
d = {4: 5, 1: 1, 3: 12, 2: 3}  
len(d) # => 4  
  
# строка  
s = "Hello"  
len(s) # => 5 

Как вариант (не самый лучший, конечно), функцию len() можно использовать в конструкции for для перебора элементов:

Пример (python)
s = "Hello"
for i in range(len(s)):
    print(s[i]) 

В этом уроке мы познакомились с оставшимися, ранее не затронутыми, методами словарей в Python и впервые узнали о функции len() для подсчета количества элементов в итерируемых объектах.

В следующем уроке мы начнем знакомство с множествами в Python, их особенностями и основными методами.

Тест

Две секундочки...

Похожие уроки Codebra

@codebra_official
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Итоги раздела «Структуры данных в Python»Знакомство с Python
Обработка исключений (try/except) в PythonЗнакомство с Python
Генераторы и оператор yield в PythonЗнакомство с Python
Внутреннее устройство и сортировка словаря в PythonЗнакомство с Python
Продолжаем написание классов в PythonЗнакомство с Python
Типы данных в PythonЗнакомство с Python
Работа с файлами в PythonЗнакомство с Python
Пользовательские функции в PHPКурс по PHP
Конкатенация и сортировка списков в PythonЗнакомство с Python
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию и компьютерной безопасности. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Пентесту Active Directory, Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно