Module (65%)
Section (33%)

Что такое словарь?

Словарь - это еще одна структура данных Python. Это не последовательность (но его можно легко адаптировать для обработки последовательности), и он изменяемый.

Чтобы объяснить, что такое словарь Python, важно понимать, что это буквально словарь.

Словарь Python работает так же, как двуязычный словарь. Например, у вас есть английское слово (например, кошка) и вам нужен его французский эквивалент. Вы просматриваете словарь, чтобы найти слово (Вы можете использовать для этого разные методы - это не имеет значения), и в конце концов Вы его получаете. Затем Вы проверяете французский аналог, и это (скорее всего) слово "chat".

Tuples vs. dictionaries concept

В мире Python искомое слово называется ключом. Слово, которое Вы получаете из словаря, называется значением.

Это означает, что словарь - это набор пар "ключ-значение". Примечание:

  • каждый ключ должен быть уникальным - невозможно иметь более одного ключа с одним и тем же значением;
  • ключ может быть любым неизменяемым типом объекта: это может быть число (целое или плавающее) или даже строка, но не список;
  • словарь не является списком - список содержит набор пронумерованных значений, а словарь содержит пары значений ;
  • функция len() работает и со словарями - она возвращает количество элементов "ключ-значение" в словаре;
  • словарь - это односторонний инструмент. Если у Вас есть англо-французский словарь, вы можете искать французские эквиваленты английских терминов, но не наоборот.

Теперь мы можем показать Вам несколько рабочих примеров.


Как создать словарь?

Если Вы хотите присвоить словарю несколько начальных пар, вы должны использовать следующий синтаксис:

dictionary = {"cat": "chat", "dog": "chien", "horse": "cheval"} phone_numbers = {'boss': 5551234567, 'Suzy': 22657854310} empty_dictionary = {} print(dictionary) print(phone_numbers) print(empty_dictionary)

В первом примере словарь использует ключи и значения, которые являются строками. Во втором ключи - это строки, а значения - целые числа. Возможна и обратная раскладка (ключи → числа, значения → строки), а также комбинации чисел и чисел.

Список пар окружен фигурными скобками, сами пары разделены запятыми, а ключи и значения - двоеточиями.

Первый из наших словарей - очень простой англо-французский словарь. Второй - крошечный телефонный справочник.

Пустой словарь состоит из пустой пары фигурных скобок - ничего необычного.


Словарь в целом можно распечатать с помощью одного вызова print(). Фрагмент может дать следующий результат:

{'dog': 'chien', 'horse': 'cheval', 'cat': 'chat'} {'Suzy': 5557654321, 'boss': 5551234567} {}

вывод


Заметили ли Вы что-нибудь удивительное? Порядок напечатанных пар отличается от исходного. Что это значит?

Прежде всего, это подтверждение того, что словари не являются списками - они не сохраняют порядок своих данных, поскольку порядок совершенно бессмысленен (в отличие от настоящих, бумажных словарей). Порядок, в котором словарь хранит свои данные, никак не зависит от Вас и от Ваших ожиданий. Это нормально. (*)

ПРИМЕЧАНИЕ

(*) В Python 3.6x словари по умолчанию стали упорядоченными коллекциями. Ваши результаты могут отличаться в зависимости от того, какую версию Python Вы используете.