Python вывести содержимое словаря

Словари Python

Словарем в языке программирования Python называется неупорядоченный набор данных произвольного типа с доступом по ключу. Элементами такой коллекции выступают пары объектов, каждая из которых включает в себя ключ и значение. Для работы со словарями доступны функции, меняющие их содержимое и выполняющие различные операции над ними. Его можно конвертировать в другие типы данных, например, в строку.

Создание

Перед тем как начать работу со словарем, его нужно создать. Сделать это можно базовыми средствами языка, присвоив свободной переменной произвольное количество пар объектов. Элементы необходимо поместить в фигурные скобки, а между ключом и значением должен стоять символ двоеточия. Следующий пример демонстрирует создание словаря под именем a, который включает в себя ключи в виде чисел и значения в виде строк.

Вывести содержимое словаря можно стандартной функцией print, указав для нее в качестве аргумента нужный набор данных. Для заполнения словаря также используется метод dict, получающий произвольное количество пар ключей и значений. В таком случае быть ключом может только строка, как это показано в следующем примере кода.

Как и в прошлый раз, функция print отображает содержимое словаря a. В данном случае имеется пары объектов, представленных также в виде чисел и строк.

Добавление элемента

В Python 3 содержимое словаря можно в любой момент изменить по своему усмотрению. К примеру, для того чтобы внести в коллекцию новую пару объектов необходимо всего лишь указать новый ключ в квадратных скобках, а также соответствующее ему значение.

Читайте также:  Как вывести пятно месячных с джинсов

В приведенном выше коде применяется оператор присваивания, благодаря чему новая пара (4 : “four”) помещается в конец уже созданной ранее коллекции a.

Объединение словарей

В том случае, если возникла необходимость в перемещении данных из одного словаря в другой, стоит воспользоваться функцией объединения update. Вызвать ее нужно на объекте, который предполагается расширить новыми парами ключей и значений. Вот пример как в Python добавить в словарь словарь:

Результатом работы метода print станет вывод на экран обновленного содержимого словаря под названием a.

Удаление элемента

Если словарь содержит лишнюю информацию, от нее можно легко избавиться при помощи специальной операции del. Для ее выполнения необходимо указать имя коллекции, а также ключ в квадратных скобках. Следующий пример показывает удаление пары.

Так как операция получила ключ 3, в результате ее работы удалилось и значение three.

Получение размера

Функция len позволяет в любой момент определить текущее количество элементов словаря, если передать ей в качестве аргумента имя коллекции. В приведенном ниже примере метод print осуществляет вывод на экран размерность словаря a.

Стоит заметить, что функция len возвращает точное количество пар, но не объектов. В этом случае имеется словарь, который содержит в себе ровно 3 пары.

Перебор словаря

Произвести перебор элементов словаря можно несколькими способами, в зависимости от желаемой для получения информации о его содержимом.

Перебор элементов можно осуществить с целью получения для последующей обработки:

  • Пар ключ-значение;
  • Перебор всех ключей;
  • Перебор значений.

В данном примере показывается как вывести на экран все пары этой коллекции в формате ключ : значение. Для этого используется цикл for и функция items, работающая с элементами словаря.

Чтобы получить только ключи, следует применить метод keys, вызывав его на словаре.

Аналогичным образом нужно поступить, чтобы вывести только значения словаря. Однако в таком случае в цикле for используется метод values.

В обоих случаях отображается только выбранная часть пары, ключ или значение.

Поиск

Проверить наличие определенного ключа можно при помощи операции in. Для этого достаточно вывести результат ее выполнения для словаря по имени a.

Как можно заметить, проверка ключа 2 дала положительный результат (True). Во втором случае вывелось значение False, поскольку ключа 4 в словаре не обнаружено.

Сортировка

Средства языка дают возможность проводить в Python сортировку словаря по ключам и значениям, в зависимости от необходимости. В следующем примере имеется коллекция данных по имени a, в которой содержится информация в произвольном порядке. Ключами здесь выступают числа, а значениями являются строки. Сортировка осуществляется за счет импортированного модуля operator и встроенного метода itemgetter, получающего 0 или 1.

Сравнение

Иногда нужно удостовериться, что два словаря содержат абсолютно одинаковые данные, либо узнать какая коллекция больше или меньше по размеру. В этом случае на помощь приходит метод cmp, получающий в качестве параметров два словаря.

Приведенный код продемонстрировал выполнение метода cmp с трема комбинациями аргументов. Как видно из результатов выдачи, функция возвращает 1, если первый больше второго, -1, если наоборот и 0, когда данные полностью идентичны.

Копирование

Метод copy используется для копирования содержимого одного словаря в другой. Данный пример демонстрирует перенос ключей и значений из коллекции a в b.

Как можно заметить, порядок и содержимое всех пар было сохранено в новом наборе.

Очистка

Чтобы избавиться от всех элементов словаря, стоит вызвать для него функцию clear.

В результате получается абсолютно пустой набор данных.

Генератор словарей

Как и с другими наборами данных, производить заполнение словарей можно при помощи генераторов. В следующем примере демонстрируется создание числовых пар коллекции с использованием генератора словарей Python с методом range, получающего в качестве аргумента 5.

Таким образом, на выходе получается словарь a, включающий в себя ровно 5 пар. Ключами являются числа от 0 до 4, а значениями выступают их математические квадраты.

Конвертация в строку

Словарь можно очень легко преобразовать в строку для более удобной работы с цельным представлением его содержимого. Чтобы сделать это, потребуется функция str. Как можно видеть из результатов выполнения метода type, конвертация прошла успешно.

Аналогичным образом происходит обратное преобразование строки Python в словарь. Важно, чтобы ее текстовое содержимое подходило по структуре под рассматриваемую коллекцию.

Как видно из примера, метод eval конвертирует весь текст строки в новый словарь.

Вложенные

В Python словари могут быть вложенными, то есть выступать частью другого более крупного словаря. При помощи уже знакомых ранее фигурных скобок и двоеточий можно обозначить границы этого набора данных и указать программе пары ключей со значениями.

В примере, описанном выше, создается словарь a, включающий в себя два других словаря (First и Second). Те, в свою очередь, содержат несколько пар ключей и значений.

Резюме

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

Источник

Топ-10 методов словарей в Python

Словарь в Python используется для хранения наборов данных в виде пар ключ-значение. Он работает как ассоциативный массив, который встречается в других языках программирования. Для определения словаря используются фигурные скобки <> , а пара «ключ-значение» определяется при помощи двоеточия : . Содержимое ключа и значения может быть как числовым, так и строковым.

Для работы со словарями Python имеет множество встроенных методов. С их помощью решаются задачи добавления и удаления элементов, обновления, поиска, подсчета и т.д. В этой статье мы расскажем про десять самых важных, на наш взгляд, методов словарей в Python.

Метод items()

Метод items() используется для возврата списка кортежей с парами всех ключей и значений словаря.

Данный метод не принимает никаких аргументов.

Приведем пример использования данной функции.

Объявлен ​​словарь с именем products . Ключи содержат названия продуктов, а значения — их цены. Используем для нашего словаря метод items() и сохраним в другой переменной с именем itemlist , а затем выведем на экран.

Выполнив данную программу, получим следующий результат:

Метод keys()

keys() используется для возврата списка со всеми ключами словаря.

Этот метод также не принимает никаких аргументов.

Давайте рассмотрим метод keys() на примере. В скрипте объявлен ​​словарь с именем products . Как и в предыдущем примере, ключи содержат названия продуктов, а значения — их цену. Применим метод keys() , а возвращаемые значения сохраним в переменной с именем keylist , которую затем выведем на экран.

Если вам нужен список всех значений словаря, следует использовать метод values() , который работает аналогичным образом.

Метод setdefault()

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

Синтаксис: dictionary.setdefault(key_value [, default_value])

У этого метода два аргумента. Первый является обязательным и используется для указания ключа, по которому будет выполняться поиск в словаре. Второй аргумент опционален. Он используется для установки значения по умолчанию, если ключа, указанного в первом аргументе, не окажется в словаре. Если указанного ключа в словаре нет, а значение по умолчанию не определено, метод вернет «None».

Следующий пример показывает использование метода setdefault() в словаре. Возьмем все тот же словарь products . Для начала используем метод setdefault() с одним аргументом. Сохраним его в переменную с именем juice_price и выведем эту переменную на экран.

Ключ Mango Juice существует в словаре. Значение этого ключа 30, оно и выводится на экран.

А теперь давайте используем этот метод с двумя аргументами, сохраним в переменную с именем cake_price и выведем ее.

Выполним данный код и получим следующее:

Ключа Cake в словаре нет. Поэтому печатается значение по умолчанию для метода setdefault() , в нашем случае это 35.

Метод get()

Метод get() работает аналогично методу setdefault() , но между ними есть одно различие. Для метода get() оба аргумента являются обязательными, в то время как в методе setdefault() второй аргумент опционален.

Синтаксис: dictionary.get(key_value , default_value)

Данный метод возвращает значение, соответствующее указанному ключу (ключ задается в первом аргументе). Если же такого ключа в словаре не окажется, метод вернет значение по умолчанию, которое мы задаем во втором аргументе.

В следующем примере используется тот же словарь, что и во всех предыдущих. Здесь метод get() используется дважды, с двумя разными значениями ключа.

Первый ключ, переданный в метод get() , — Chocolate . Его нет в словаре, поэтому выводится значение по умолчанию.

Второй ключ, который мы передали в метод get() , — это Mango Juice . Такой ключ в словаре есть, поэтому на экран выводится его значение.

Метод len()

Метод len() используется для подсчета общего количества элементов в словаре (под элементом понимается пара ключ-значение).

Этот метод принимает словарь в качестве аргумента и возвращает общее количество элементов этого словаря.

Давайте рассмотрим данный метод на примере. Следующий скрипт подсчитывает общее количество элементов словаря products и выводит на экран это значение.

Выполнив данный код, получим, что наш словарь состоит из 4 элементов:

Метод pop()

Метод pop() используется для получения конкретного значения по ключу и удаления этого элемента из словаря на основе значения ключа.

Синтаксис: dictionary.pop(key [, value])

У этого метода два аргумента. Первый аргумент является обязательным и используется для указания ключа. Второй аргумент опционален. Он используется для установки значения по умолчанию, которое будет возвращено, если указанного в первом аргументе ключа не окажется в словаре.

Для лучшего понимания рассмотрим пример. Объявим словарь с именем dictvar , содержащий четыре элемента.

Сначала используем в качестве ключа Phone , а дополнительное значение указывать не будем.

Ключ Phone в словаре есть. Поэтому при использовании метода pop() возвращается его значение, после чего этот элемент удаляется из словаря.

А теперь давайте применим метод pop() с тем же первым аргументом ( Phone ), но к нему добавим и второй, необязательный аргумент.

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

Метод update()

update() используется для двух словарей. Если какой-либо ключ второго словаря совпадает с любым ключом первого словаря, то значение ключа из первого словаря будет обновлено значением этого же ключа из второго словаря. Ключи второго словаря, не совпадающие ни с одним ключом из первого словаря, добавляются в конец первого словаря вместе со своими значениями.

В качестве аргумента метод принимает dictionary2 , который будет использоваться для обновления dictionary1 .

Рассмотрим пример. В следующем скрипте объявлены два словаря: dict1 и dict2 . dict2 используется для обновления dict1 с помощью метода update() . dict1 печатается до и после использования метода update() .

Запустим наш код. Вывод:

У словарей dict1 и dict2 есть один общий ключ, это 01113456 . Поэтому значение этого ключа в dict1 обновляется значением из dict2 . Второй ключ dict2 не существует в dict1 , поэтому этот элемент добавляется в конец dict1 .

Метод copy()

copy() используется для создания копии словаря. Это полезно, когда нам нужно сохранить исходную копию словаря перед изменением.

Этот метод не принимает никаких аргументов.

Рассмотрим пример. В следующем скрипте dict1 копируется в dict2 . Обе переменные используют разную память. Таким образом, если вы измените какое-либо значение одного словаря, это не повлияет на другую копию словаря. Изменим одно из значений dict2 и выведем оба словаря.

Запустим наш код. Можно заметить, что изменения в dict2 не вызывают никаких изменений в dict1 .

Метод sorted()

sorted() используется в словаре только для сортировки ключей.

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

Рассмотрим на примере. Объявим словарь с именем dictvar . Затем используем метод sorted() для сортировки его ключей и сохраним в переменной с именем sorted_key . Выведем значения этой переменной на экран.

В результате запуска этого кода получим список отсортированных по возрастанию ключей.

Метод clear()

И финальный метод из нашей подборки топ-10 методов словарей в Python. Данный метод используется, чтобы убрать все элементы из словаря, очистить его.

clear() не принимает никакие аргументы и возвращает пустой словарь.

Как и в предыдущем примере, объявим словарь с именем dictvar . Затем применим к нему метод clear() . Для наглядности выведем на экран содержимое словаря до и после применения метода clear() .

Мы получили пустой словарь.

Заключение

В этой статье мы рассказали про топ-10 методов словарей в Python и показали их работу на простых примерах. Надеемся, это поможет вам более эффективно работать со словарями.

Источник

Оцените статью