English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой статье вы узнаете все о Python dictionary; как создавать, доступа, добавлять и удалять элементы, а также различные встроенные методы.
Python словарь является неупорядоченной коллекцией элементов. Другие типы сложных данных имеют только значения в качестве элементов, а словарь имеет пары ключ: значение (key:value).
Словарь оптимизирован для поиска значений при известном ключе.
Создание словаря так же просто, как placement элементов в фигурные скобки {} через запятую.
Элемент имеет один ключ и соответствующее значение, представляющее собой пару, ключ: значение.
Хотя значения могут быть любым типом данных и могут повторяться, но ключи должны быть неизменными типами (имеющими неизменные элементыСтрока,ЧислоилиТупляк)и должен быть уникальным.
# Пустой словарь my_dict = {} # Словарь с целочисленными ключами my_dict = {1: 'apple', 2: 'ball'} # Смешанный словарь ключей my_dict = {'name': 'John', 1: [2, 4, 3]} # Использование dict() my_dict = dict({1: 'apple', 2: 'ball'}) # Каждый элемент как пара my_dict = dict([(1, 'apple'), (2, 'ball')])
Как вы видите выше, мы также можем использовать вbuilt-in функцию dict() для создания словаря.
Хотя индексы используются вместе с другими типами контейнеров для доступа к значениям, словари используют ключи. Ключи могут использоваться в квадратных скобках или вместе с методом get().
Разница в использовании get() заключается в том, что если не найден ключ, он возвращает None, а не KeyError.
При выполнении программы выводится:
Jack 26
Словарь является изменяемым. Мы можем использовать оператор присваивания для добавления новых элементов или изменения значений существующих элементов.
Если ключ уже существует, значение будет обновлено,否则 новый ключ: значение будет добавлен в словарь.
При выполнении программы выводится:
{'name': 'Jack', 'age': 27} {'name': 'Jack', 'age': 27, 'address': 'Downtown'}
Мы можем использовать метод pop() для удаления конкретного элемента из словаря. Этот метод использует предоставленный ключ для удаления элемента и возвращает значение.
Метод popitem() можно использовать для удаления и возврата любого элемента (ключ, значение) из словаря. Использование метода clear() позволяет удалить все элементы за один раз.
Мы также можем использовать ключевое слово del для удаления отдельного элемента или всего словаря.
При выполнении программы выводится:
16 {1: 1, 2: 4, 3: 9, 5: 25} (1, 1) {2: 4, 3: 9, 5: 25} {2: 4, 3: 9} {}
Ниже перечислены доступные методы словаря. В примерах выше уже использовались некоторые из них.
Метод | Описание |
---|---|
clear() | Удаление всех элементов из словаря. |
copy() | Возврат поверхностной копии словаря. |
fromkeys(seq[,v]) | Используется для создания нового словаря, ключами которого являются элементы последовательности seq, а v — это начальное значение для всех ключей. |
get(key[,d]) | Возврат значения ключа. Если ключ не существует, возвращается d (по умолчанию None). |
items() | Возврат перечислимого массива кортежей (ключ, значение). |
keys() | Возврат всех ключей из словаря. |
pop(key[,d]) | Удаление элемента с указанным ключом и возврат его значения. Если找不到 key, возвращается d. Если не предоставлен d и не найден key, вызывается ошибка KeyError. |
popitem() | Удаление и возврат любого элемента (ключ, значение). Если словарь пуст, вызывается ошибка KeyError. |
setdefault(key[,d]) | Возврат значения указанного ключа, если указанного ключа нет в словаре, возвращается указанное значение, по умолчанию None. |
update([other]) | используя изotherОбновляет словарь, перекрывая существующие ключи. |
values() | Возвращает все значения словаря в виде списка. |
Вот несколько примеров использования этих методов.
marks = {}.fromkeys(['Math','English','Science'], 0) # Вывод: {'English': 0, 'Math': 0, 'Science': 0} print(marks) for item in marks.items(): print(item) # Вывод: ['English', 'Math', 'Science'] list(sorted(marks.keys()))
Понимание словаря — это элегантный и краткий способ создания нового словаря из итератора в Python.
Понимание словаря включает выражение пары (ключ: значение), за которым следует предложение for в фигурных скобках {}.
Вот пример создания словаря, где каждый элемент — это пара чисел и их квадрат.
squares = {x: x*x for x in range(6)} # Вывод: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25} print(squares)
Этот код эквивалентен
squares = {} for x in range(6): squares[x] = x*x
Словарное понимание может выбирать для включения большеforилиУсловное предложение if.
Дополнительное условное предложение if может фильтровать элементы для создания нового словаря.
Вот несколько примеров словарей, которые содержат только奇чные элементы.
odd_squares = {x: x*x for x in range(11) if x%2 == 1} # Вывод: {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} print(odd_squares)
Чтобы узнать больше информации, пожалуйста, посетитеУмножение словарей Python.
Мы можем использовать ключевое слово, чтобы проверить, находится ли ключ в словаре, с помощью in. Обратите внимание, что тест на членство применяется только к ключам, а не к значениям.
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} # Вывод: True print(1 in squares) # Вывод: True print(2 not in squares) # Тест на членство только для ключей, а не для значений # Вывод: False print(49 in squares)
Используя цикл for, мы можем итерироваться по каждому ключу словаря.
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} for i in squares: print(squares[i])
Встроенные функции, такие как all(), any(), len(), cmp(), sort() и т.д., обычно используются вместе с dictionary для выполнения различных задач.
Функция | Описание |
---|---|
all() | Если все значения ключей в словаре равны true (или словарь пуст), вернуть True. |
any() | Если любое значение ключа в словаре равно true, то вернуть True. Если словарь пуст, вернуть False. |
len() | Вернуть длину словаря (количество элементов). |
cmp() | Сравнить элементы двух словарей. |
sorted() | Вернуть новый отсортированный список ключей из словаря. |
Ниже приведены примеры использования встроенных функций для обработки словарей.
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} # Вывод: 5 print(len(squares)) # Вывод: [1, 3, 5, 7, 9] print(sorted(squares))