- Словари в Python
- Как создать словарь
- Как получить элементы из словаря
- Как изменить или добавить элементы в словаре
- Как удалить элементы из словаря
- Методы словарей
- Представление словарей
- Другие операции со словарями
- Проверка на вхождение в словарь
- Итерирование по словарю
- Встроенные функции для словарей
- Проверить, существует ли данный ключ в словаре Python
- 1. Использование в операторе
- 2. Использование dict.get() функция
- 3. Использование блока try/except
- 4. Использование setdefault() функция
Словари в Python
В этом руководстве вы узнаете всё о словарях в Python: как их создавать, как добавлять, удалять, как получать из них элементы, а еще познакомитесь со встроенными методами словарей.
Словарь — это неупорядоченный набор элементов. Элемент словаря представляет собой пару ключ: значение . Словари оптимизированы для получения значений по заданному ключу.
Как создать словарь
Чтобы создать словарь в Python, необходимо прописать элементы внутри фигурных скобок <> и разделить их запятыми.
В элементе содержится ключ и соответствующее значение, они записываются так: (ключ: значение) .
В словарях значения могут повторяться и быть любого типа. Ключи же повторяться не могут и должны быть неизменяемым типом (строками, числовыми типами и кортежами с неизменяемыми элементами).
# пустой словарь my_dict = <> # словарь с ключами — целочисленными значениями my_dict = # словарь с ключами разных типов my_dict = # используем dict() my_dict = dict() # словарь из последовательности, где элементы являются парами my_dict = dict([(1,'яблоко'), (2,'мяч')])
Как вы увидели выше, мы можем создать словарь с помощью встроенной функции dict() .
Как получить элементы из словаря
В отличие от других типов данных, где для доступа к элементам используется индексация, в словаре используются ключи. Они используются внутри квадратных скобок или в качестве аргумента метода get() .
При использовании квадратных скобок и отсутствии элемента в словаре вызывается ошибка KeyError. При использовании метода get() и отсутствии элемента возвращается None .
# get vs. [] для получения элементов my_dict = # Вывод: Jack print(my_dict['Имя']) # Вывод: 26 print(my_dict.get('Возраст')) # Попытка получить ключ, которого не существует, приводит к ошибке # Вывод: None print(my_dict.get('Адрес')) # KeyError print(my_dict['Адрес'])
Ваня
26
None
Traceback (most recent call last):
File "", line 15, in
print(my_dict['Адрес'])
KeyError: 'Адрес'
Как изменить или добавить элементы в словаре
Словари — изменяемый тип данных. Это значит, что в него можно добавить новые элементы или изменить уже существующие с помощью оператора присваивания.
Если добавляемый ключ есть в словаре, значение элемента изменяется. Если же такого ключа еще нет, то в словарь добавляется новая пара (ключ: значение) .
# Изменение словаря my_dict = # обновляем значение my_dict['Возраст'] = 27 # Вывод: print(my_dict) # добавляем элемент my_dict['Адрес'] = 'Центр города' # Вывод: print(my_dict)
Как удалить элементы из словаря
Удалить нужный элемент словаря по ключу можно с помощью метода pop() . Этот метод удаляет элемент с соответствующим ключом и возвращает значение.
Удалить произвольную пару (ключ, значение) можно с помощью метода popitem() . Очистить весь словарь за один раз можно с помощью метода clear() .
Также можно использовать ключевое слово del для удаления отдельных элементов или же всего словаря.
# создаем словарь squares = # удаляет определенный элемент, возвращает его значение # Вывод: 16 print(squares.pop(4)) # Вывод: print(squares) # удаляет произвольный элемент, возвращает (ключ, эзначение) # Вывод: (5, 25) print(squares.popitem()) # Вывод: print(squares) # удаляет все элементы squares.clear() # Вывод: <> print(squares) # удаляет весь словарь del squares # выдает ошибку print(squares)
16
(5, 25)
<>
Traceback (most recent call last):
File "", line 30, in
print(squares)
NameError: name 'squares' is not defined
Методы словарей
В таблице ниже указаны доступные методы словарей. Некоторые из них мы уже использовали в примерах выше.
Удаляет все элементы из словаря
Возвращает неглубокую копию словаря
Возвращает словарь с ключами из seq и значениями, равными v (по умолчанию None )
Возвращает значение ключа key . Если key не существует, возвращает d (по умолчанию None )
Возвращает новый объект элементов словаря в формате (ключ, значение)
Возвращает новый объект с ключами словаря
Удаляет элемент с ключом key и возвращает его значение или d , если key не найден. Если d не было обозначено и key не найден, вызывает ошибку KeyError.
Удаляет и возвращает произвольную пару (ключ, значение) . Вызывае ошибку KeyError, если словарь пустой.
Если ключ key есть в словаре, возвращает соответствующее ему значение. Если нет, добавляет в словарь элемент с ключом key и значением d и возвращает d (по умолчанию None )
Обновляет словарь имеющимися парами ключ/значение из other , перезаписывая существующие ключи
Возвращает новый объект со значениями словаря
marks = <>.fromkeys(['математика', 'русский язык', 'физика'], 0) # Вывод: print(marks) for item in marks.items(): print(item) # Вывод: ['русский язык', 'математика', 'физика'] print(list(sorted(marks.keys())))
('математика', 0)
('русский язык', 0)
('физика', 0)
['русский язык', 'математика', 'физика']
Представление словарей
Представление словарей — элегантный и лаконичный способ создать новый словарь из итерируемого объекта.
Представление словарей состоит из выражения ключ: значение , за которым следует for , и всё это — внутри фигурных скобок <> .
Создадим словарь с парами чисел и их квадратов в качестве элементов:
То же самое можно сделать иначе, но так будет длинее:
squares = <> for x in range(6): squares[x] = x*x print(squares)
В представлении словарей выражений for и if опционально может быть больше.
Необязательное выражение if поможет отфильтровать элементы для создания нового словаря.
Давайте создадим словарь только с квадратами только нечетных чисел:
# Представление словарей с опциональным if odd_squares = print(odd_squares)
Другие операции со словарями
Проверка на вхождение в словарь
Проверить, есть ли ключ в словаре, можно с помощью ключевого слова in . Отметим, что проверку на вхождение можно провести только над ключами, не над значениями
squares = # Вывод: True print(1 in squares) # Вывод: True print(2 not in squares) # Проверка на вхождение позволяет проверять только ключи, не значения # Вывод: False print(49 in squares)
Итерирование по словарю
Мы можем пройтись по всем ключам словаря, используя цикл for .
squares = for i in squares: print(squares[i])
Встроенные функции для словарей
Встроенные функции all() , any() , len() , cmp() , sorted() и т. д. часто используются со словарями для разных задач.
Возвращает True , если все ключи словаря = True (или если словарь пуст)
Возвращает True , если хотя бы один ключ словаря = True . Если словарь пуст, возвращает False .
Возвращает длину (количество элементов) словаря
Сравнивает элементы двух словарей (не работает в Python 3)
Возвращает новый список с отсортированными ключами словаря
# Встроенные функции для словарей squares = # Вывод: False print(all(squares)) # Вывод: True print(any(squares)) # Вывод: 6 print(len(squares)) # Вывод: [0, 1, 3, 5, 7, 9] print(sorted(squares))
Проверить, существует ли данный ключ в словаре Python
В этом посте будет обсуждаться, как проверить, существует ли данный ключ в словаре Python.
1. Использование в операторе
Предпочтительный и самый быстрый способ проверить наличие ключа в словаре — использовать in оператор. Он возвращается True если ключ есть в словаре, False в противном случае.
The in оператор реализует встроенную функцию __contains__ . Однако вызывать __contains__ напрямую. in оператор — это Pythonic способ вызвать __contains__ функция.
2. Использование dict.get() функция
Другим распространенным подходом к поиску ключа в словаре является использование get() функция. Это возвращает значение ключа, если оно найдено; в противном случае указанное значение или значение по умолчанию None возвращается.
3. Использование блока try/except
Вы также можете использовать dPython проверка вхождения ключа в словарь синтаксис для проверки ключа в словаре. Это вызывает KeyError когда указанный ключ не существует в словаре. Чтобы справиться с этим, используйте блок try/except, как показано ниже:
4. Использование setdefault() функция
Наконец, вы можете использовать встроенную функцию setdefault() , который вставляет ключ, только если он не найден в словаре. Это особенно полезно, когда вам нужно вставить ключ, только если он еще не существует в словаре.
Это все, что касается определения того, существует ли данный ключ в словаре Python.
Средний рейтинг 5 /5. Подсчет голосов: 24
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно