Как добавить словарь в список python
Перейти к содержимому

Как добавить словарь в список python

  • автор:

Словари и методы в Python. Добавление списка в словарь

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

Словарь (dictionary) в Python используется наряду с кортежами и списками, похожие структуры есть и в других языках программирования (ассоциативный массив в PHP, словарь в C#).

Словарь, как и список, хранит коллекцию элементов. И каждый элемент в словаре, как было уже упомянуто, имеет уникальный ключ — с ним ассоциировано какое-либо значение.

Вот синтаксис словаря в Python:

dictionary =

А вот ещё пример словаря:

dictionary =

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

gender_dict =

Примечание: если будете применять в качестве ключа изменяемый тип данных (правильнее сказать, нехэшируемый, хотя обычно это одно и то же), то на выходе будет ошибка:

dictionary =

Получаем данные из словаря

Чтобы получить значения конкретного ключа используют квадратные скобки [] . Представим, что у нас в словаре присутствует пара «марафон»: 26.

 
# берём значение с ключом «марафон» dictionary['марафон']

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

Как добавлять и обновлять ключи

Добавление в словарь новых пар выполняется просто:

 
# Добавляем ключ «туфля» со значением «род обуви, который закрывает ногу не выше щиколотки» dictionary['туфля'] = 'род обуви, который закрывает ногу не выше щиколотки'

Для обновления делаем то же самое:

 
# Обновляем ключ "туфля" и присваиваем ему значение "хорошая туфля" dictionary['туфля'] = 'хорошая туфля'

Как удалять ключи

Чтобы удалить ключ и соответствующее значение из словаря, используем del:

 
# Удаляем значение с ключом "противостоять" из словаря del dictionary['противостоять']

Методы

Cловари имеют много полезных методов, помогающих в работе. Рассмотрим наиболее популярные.

Update

Метод update() нужен при объявлении нескольких пар одновременно. В качестве аргумента метод принимает другой словарь:

# Добавляем две пары в словарь dictionary, используя метод update dictionary.update() >>> dictionary

Возможно, вы спросите, почему в словаре данные расположены в другом порядке, а не в том, в котором были в него внесены. Ответ прост — словари не упорядочены.

Get

# Представьте, что у нас есть словарь story_count story_count =

get() возвратит значение по указанному ключу. А если его нет, то метод вернёт нам None .

 
# Ключ "двенадцать" существует и метод get в данном случае вернёт 12 story_count.get('двенадцать')

Способ используют при проверке, а есть ли ключи в словаре:

 
>>> story_count.get('два') None

Кроме того, вы можете указать значение по умолчанию — оно вернётся вместо None , если ключа не будет в словаре:

 
# Метод вернёт 0 в случае, если данного ключа не существует story_count.get('два', 0)

Pop

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

>>> story_count.pop('девяносто') 90 >>> story_count

Keys

Метод keys() необходим, чтобы возвратить коллекцию ключей в словаре:

 
>>> story_count.keys() ['сто', 'пять', 'двенадцать']

Values

Возвратит коллекцию значений в словаре.

 
>>> story_count.values() [100, 12, 5]

Items

Если нужно вернуть пары «ключ — значение», используют items() :

 
>>> dictionary.items() [('персона', 'человек'), ('бежать', 'двигаться со скоростью'), ('туфля', 'род обуви, закрывающей ногу не выше щиколотки'), ('бежал', 'бежать в прошедшем времени'), ('марафон', 'гонка бегунов длиной около 26 миль'), ('туфли', 'туфля во множественном числе')]

Итерация через словарь

В «Питоне» есть возможность выполнить итерацию в словаре по каждому ключу:

 
for key in story_count: print(key)

Кстати, вместо story_count можно применять story_count.keys() .

Внимательно посмотрите на участок кода ниже: в нём цикл for использует метод items() , чтобы получить пары «ключ — значение» на каждую итерацию:

 
>>> for key, value in dictionary.items(): print(key, value) ('персона', 'человек') ('бежать', 'двигаться со скоростью') ('туфля', 'род обуви, закрывающей ногу не выше щиколотки') ('бежал', 'бежать в прошедшем времени') ('марафон', 'гонка бегунов длиной около 26 миль') ('туфли', 'туфля во множественном числе')

Словарь и список: выполнение преобразования из списка в словарь

Словарь (dictionary) и список (list) — типы, непохожие по своей структуре. Однако для отдельных видов списка есть возможность преобразования списка в словарь. Для этого используют встроенную функцию dict() . Необходимо, чтобы список хранил набор вложенных списков. Также нужно, чтобы каждый вложенный список состоял из 2-х элементов. В результате во время конвертации списка в словарь 1-й элемент превратится в ключ, 2-й — в значение:

users_list = [ ["+111123455", "Tom"], ["+384767557", "Bob"], ["+958758767", "Alice"] ] users_dict = dict(users_list) print(users_dict) #

Таким же образом возможно преобразование в словарь не только списка, но и двухмерных кортежей:

 
users_tuple = ( ("+111123455", "Tom"), ("+384767557", "Bob"), ("+958758767", "Alice") ) users_dict = dict(users_tuple) print(users_dict)

Python_Pro_970x550-20219-0846c7.png

Материал подготовлен специально для OTUS на основании статьи «Python Dictionary and Dictionary Methods».

Python список в словарь: полное руководство

В Python вы можете преобразовать список в словарь, используя dictionary comprehension (генераторы словарей), dict.fromkeys() или метод zip() . Все эти три метода создают новый словарь. Они не изменяют существующий список.

Списки и словари в Python – это две структуры, используемые для хранения данных. Но что, если нам нужно преобразовать список в словарь? Вам это может понадобиться, если вы захотите присвоить уникальную метку каждому сохраненному вами значению. А это возможно только в словаре.

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

Списки и словари в Python

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

Список позволяет хранить данные в определенном порядке. Вот пример списка в Python:

takeout_prices = [2.50, 2.75, 4.50, 5.00]

Наш список takeout_prices содержит четыре значения.

А словари, в отличие от списков, не упорядочены.

Вот пример словаря в Python:

takeout_prices =

Словари полезны, если вы хотите связать каждое значение с какой-нибудь меткой — ключом. А если вы храните похожие значения, например, цены или имена, которым не можете назначить уникальные ключи, лучше использовать списки.

Преобразование списка в словарь

Преобразовать список в словарь можно при помощи метода dict.fromkeys() , генераторов словарей или метода zip() . Метод zip() полезен, если вы хотите объединить два списка в словарь.

Давайте вкратце разберем эти методы:

  • dict.fromkeys() : используется для создания словаря из списка. При желании можно установить значение по умолчанию для всех ключей. При этом вы не можете установить индивидуальные значения для каждого элемента в словаре.
  • Генератор словарей: создает новый словарь из существующего списка. Вы можете указать разные значения для каждого ключа в словаре. Генератор словаря по своей структуре похож на генератор списков.
  • zip() : преобразует два (или больше) списка в список кортежей. Для преобразования этого списка кортежей в словарь можно использовать метод dict() .

Давайте применим каждый из этих трех методов, чтобы на примерах разобрать преобразование списка в словарь.

Кстати если вы ищете работу, то посмотрите свежие вакансии по Python

Превращаем список в словарь при помощи dict.fromkeys()

Допустим, у нас есть список фруктов, которые мы хотим превратить в словарь. Значение, присвоенное каждому фрукту, должно быть In stock (т.е. в наличии):

fruits = ["Apple", "Pear", "Peach", "Banana"]

Создадим этот словарь с помощью dict.fromkeys() . Этот метод принимает список ключей, которые вы хотите превратить в словарь. При желании можно указать значение, которое должно быть присвоено всем ключам.

Значение можно указать только одно. То есть нельзя прописать, что один ключ должен иметь одно значение, а другой ключ — другое.

Давайте превратим наш список фруктов в словарь:

fruits = ["Apple", "Pear", "Peach", "Banana"] fruit_dictionary = dict.fromkeys(fruits, "In stock") print(fruit_dictionary)

Наш код возвращает объекты из этого списка в виде словаря:

Сначала мы объявляем переменную под именем fruits . В ней хранятся имена ключей, которые мы хотим использовать в нашем словаре.

Затем мы используем метод dict.fromkeys() для создания словаря с ключами, которые мы сохранили в списке fruits . Этот метод присваивает каждому ключу значение In stock .

Наконец, мы выводим получившийся словарь в консоль.

Если бы мы не указали в нашем коде значение In stock , значением по умолчанию для ключей в нашем словаре было бы None .

Преобразуем список в словарь при помощи генератора словаря

Для преобразования списка Python в словарь также можно использовать генератор словаря.

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

Что касается синтаксиса, в генераторе словаря используются фигурные скобки <> , а в генераторе списка — квадратные [] .

Давайте преобразуем наш список фруктов в словарь, используя генератор словаря:

fruits = ["Apple", "Pear", "Peach", "Banana"] fruit_dictionary = print(fruit_dictionary)

Для начала мы объявили список фруктов ( fruits ), где хранятся их названия, которые мы хотим перенести в словарь.

Затем мы использовали генератор словаря, чтобы пройтись по каждому элементу в списке fruits . Для каждого фрукта в нашем списке мы добавили элемент в новый словарь. При этом каждому фрукту мы присвоили значение In stock.

Наконец, мы вывели наш новый словарь в консоль. Можем запустить наш код, и он выведет то же самое, что и в первом примере.

Конвертируем два списка в словарь при помощи zip()

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

Для этого мы можем использовать такую функцию Python, как zip(). Она позволяет объединить два списка. Элементы одного списка мы можем использовать в качестве ключей для словаря, а элементы второго — в качестве значений.

Итак, предположим, что у нас есть два списка: один содержит названия фруктов, а другой – их цены. Мы хотим создать единый словарь, в котором будет храниться название фрукта и его цена.

Для выполнения этой задачи мы можем использовать следующий код:

fruits = ["Apple", "Pear", "Peach", "Banana"] prices = [0.35, 0.40, 0.40, 0.28] fruit_dictionary = dict(zip(fruits, prices)) print(fruit_dictionary)

Запустим наш код и получим следующее:

Что же мы сделали? Во-первых, мы определили два списка: список фруктов fruits и список цен prices .

Затем мы использовали функцию zip() , чтобы объединить наши списки. Эта функция возвращает список кортежей. Поскольку нам нужен словарь, для преобразования наших кортежей мы использовали dict() .

В конце мы вывели содержимое нашего нового словаря в консоль.

Заключение

Итак, мы разобрали на примерах, как в Python получить словарь из списка или двух списков.

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

Для создания словаря из двух списков стоит воспользоваться функцией zip() .

Генератор словаря позволяет создать новый словарь на основе значений списка.

Надеемся, теперь у вас всё разложилось по полочкам в данном вопросе!

Артём Санников

Данная книга является руководством для начинающих специалистов в области анализа и обработки данных. В книге рассматривается язык SQL и его процедурное расширение PL/SQL от компании Oracle.

Главная › Языки программирования › Python › Словари › Список в словаре Python

Список в словаре Python

Иногда нужно поместить список [ ] в словарь < >, вместо того, чтобы помещать словарь в список. Это не сложная задача, и выполняется в считанные секунды.

Для примера создадим словарь fruits со списком фруктов, и добавим в него две пары ‘banane’ : ‘Банан’ и ‘orange’ : ‘Апельсин’ . Но это пока обычный словарь, чтобы добавить список в словарь мы добавляем ещё одну пару, но вместо значения для ключа указываем список ‘apple’ : [Список]

# Создание словаря fruits = < 'banane':'Банан', 'orange':'Апельсин', 'apple':['Зелёное яблоко', 'Красное яблоко'] ># Вывод словаря на экран print(fruits) # Финальный результат в консоли

Записи по теме

  • Словарь в словаре Python
  • Список словарей в Python
  • Перебор всех значений в словаре Python
  • Упорядоченный перебор словаря в Python
  • Перебор всех ключей в словаре Python
  • Перебор всех пар «ключ-значение» в словаре Python
  • Удаление пар «ключ-значение» в словаре Python
  • Изменение значений в словаре Python

Как добавить словарь в список словарей?

Как можно создать list содержащий поступающие словари для последующей итерации по полученному списку в цикле for, типа
l = [, , . ]
Если просто передать в list (vehicles_data_to_add) то на выходе в списке остаются только ключи словаря

l = [city_id" "tenant_id" "origin_id" "visual_id" "plate_number" "make" "model" "color" "year" "is_electric" "vehicle_type" "status" "status_description" "capacity" "max_capacity" "regular_capacity" "wheelchair_capacity" "infants_capacity" "vendor" "user_id" "user_name"]
  • Вопрос задан более трёх лет назад
  • 5566 просмотров

Комментировать

Решения вопроса 1

NeiroNx

Программист

Очень просто.

MyDict = MyList = [] MyList.append(MyDict)

Ответ написан более трёх лет назад

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *