Посмотреть все уроки курса
Выбрать другой урок из курса
Поиск по сайту
Теория урока

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

Оглавление урока

Введение

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

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

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

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

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

Пример
del numbers['One']

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

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

Если ключа не существует, то будет выброшено исключения KeyError. Про исключения поговорим в уроке 10.5. Метод 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()

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

Пример
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() вы уже познакомились в уроке 7.1, поэтому можете вернуться, чтобы его вспомнить.

Для обновления словаря, то есть добавления новых элементов и перезаписи уже имеющихся ключей, существует метод 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»
Урок 1.1. Первое знакомство с Python
Тест 1.2. Небольшой первый тест
Урок 1.3. Переменные и комментарии в Python
Тест 1.4. Тест по основным понятиям и работе с сайтом
Урок 2.1. Погружение в Python
Тест 2.2. Второй вводный тест по Python
Урок 2.3. Типы данных в Python
Урок 2.4. Форматирование строк в Python
Урок 2.5. Условная инструкция if-elif-else в Python
Урок 2.6. Преобразование и проверка типов в Python
Урок 2.7. Вызов методов цепочкой в Python
Урок 3.1. Первое знакомство с циклами в Python
Тест 3.2. Тест по циклам Python
Урок 4.1. Генерируем случайные числа на Python
Тест 4.2. Тест по модулю random Python
Урок 5.1. Структуры данных в Python
Тест 5.2. Тест по структурам Python
Урок 6.1. Списки в Python
Тест 6.2. Тест по спискам Python
Урок 6.3. Изменение списка на месте в Python
Урок 6.4. Дополнительно про списки в Python
Урок 6.5. Конкатенация и сортировка списков в Python
Тест 6.6. Заключительный тест по спискам в Python
Урок 7.1. Словари в Python
Тест 7.2. Тест по словарям Python
Урок 7.3. Словари и списки: еще глубже
Урок 7.4. Перебор элементов словаря в Python
Урок 7.5. Внутреннее устройство и сортировка словаря в Python
Урок 7.6. Методы словарей и функция len() в Python
Вы здесь
Тест 7.7. Заключительный тест по словарям
Урок 8.1. Множества в Python
Урок 8.2. Методы и особенности множеств в Python
Урок 8.3. Отношения между множествами и операции над ними
Тест 8.4. Тест по методам множеств в Python
Тест 8.5. Тест по операциям над множествами в Python
Урок 9.1. Кортежи в Python
Урок 9.2. Более подробно о кортежах в Python
Тест 9.3. Тест по кортежам в Python
Урок 10.1. Контроль хода выполнения программы в Python
Урок 10.2. Цикл while в Python
Урок 10.3. Операторы break, continue и pass в Python
Урок 10.4. Циклы for/else и while/else в Python
Урок 10.5. Обработка исключений (try/except) в Python
Тест 10.6. Тест по циклам и управляющим конструкциям
Тест 10.7. Тест по обработке исключений
Урок 11.1. Работа с файлами в Python
Урок 11.2. Оператор with/as для работы с файлами в Python
Тест 11.3. Тест по работе с файлами в Python
Урок 12.1. Итераторы в Python
Урок 12.2. List/dict/set comprehensions (включения) в Python
Тест 12.3. Тест по включениям в Python
Урок 13.1. Основы функций в Python
Тест 13.2. Тест по основам функций в Python
Урок 13.3. Область видимости в Python
Урок 13.4. Что дальше?
Впервые на сайте Codebra?

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

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

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

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

Закрыть окно