Перейти к содержимому

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

  • автор:

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

То есть мне нужен массив подобного вида x = [<"a": 1>,<"a": 2>,<"a": 3>], но заполняется он не сразу, а по-ходу программы. То есть чтобы его потом заполнять, мне надо сначала создать пустой список с пустыми словарями.

Для одного элемента прокатит вот так:
x = [<>]
x [0][‘a’]= 1

А как инициировать список, для добавления множества элементов? Вот такого:
x [0][‘a’]= 1
x [1][‘a’]= 2
x [2][‘a’]= 3
. итд.

  • Вопрос задан более трёх лет назад
  • 26274 просмотра

Комментировать
Решения вопроса 1
Meehalkoff @Meehalkoff

x = [] y = z = x.append(y) => [ ] x.append(z) => [ , ]

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

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() .

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

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

Как создать список словарей в Python

В Python у вас может быть список словарей. Вы уже знаете, что элементы списка могут быть объектами любого типа.

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

Как создать список?

В следующей программе мы создадим список длиной 3, где все три элемента относятся к типу dict.

myList = [ < 'foo':12, 'bar':14 >, < 'moo':52, 'car':641 >, < 'doo':6, 'tar':84 >] print(myList)

Каждый элемент списка – это словарь.

Доступ к паре key:value

Словарь похож на любой элемент в списке. Следовательно, вы можете получить доступ к каждому словарю списка с помощью index.

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

myList = [ < 'foo':12, 'bar':14 >, < 'moo':52, 'car':641 >, < 'doo':6, 'tar':84 >] print(myList[0]) print(myList[0]['bar']) print(myList[1]) print(myList[1]['moo']) print(myList[2]) print(myList[2]['doo'])
 14 52 6

Как обновить?

В следующей программе мы обновим некоторые пары словарей ключ:значение в списке, а также обновим значение для ключа в первом словаре, добавим пару key:value во второй словарь и удалим из третьего.

myList = [ < 'foo':12, 'bar':14 >, < 'moo':52, 'car':641 >, < 'doo':6, 'tar':84 >] #update value for 'bar' in first dictionary myList[0]['bar'] = 52 #add a new key:value pair to second dictionary myList[1]['gar'] = 38 #delete a key:value pair from third dictionary del myList[2]['doo'] print(myList)

Как добавить?

В следующей программе мы добавим словарь в список словарей.

myList = [ < 'foo':12, 'bar':14 >, < 'moo':52, 'car':641 >, < 'doo':6, 'tar':84 >] #append dictionary to list myList.append() print(myList)

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

Python, как из списка сделать словарь

Как из списка типа [‘a’, ‘s’, ‘d’, ‘1’, ‘s’, ‘d’, ‘w’, ‘e’, ‘q’] сделать словарь такого вида: <'a': 2, 'b': 0 . >, то есть сколько раз повторяется элемент в списке — такое число добавить в словарь. Примечания: словарь можно НЕ строить из элементов что в списке, можно взять готовый скелет, пример:

но если лучше или легче из элементов, которые в списке — пожалуйста. UPDATE [‘a’, ‘s’, ‘d’, ‘1’, ‘s’, ‘d’, ‘w’, ‘e’, ‘q’] — это не пример данных) Тут список может быть и следующий: [‘=’, ‘w’, ‘r’, ‘p’, ‘f’, ‘;’, ‘a’, ‘e’, ‘e’, ‘[‘, ‘w’, ‘q’, ‘r’, «‘», ‘q’, ‘r’, ‘3’, ‘caps lock’, ‘;’, ‘D’, ‘A’, ‘S’, ‘D’, ‘shift’, ‘alt’, ‘ctrl’, ‘F’, ‘.’, ‘C’, ‘R’, ‘]’, ‘Q’, ‘=’, ‘3’, ‘1’, ‘2’, ‘3’, ‘F’, ‘A’, ‘S’, ‘R’, ‘ctrl’, ‘C’] Это обычный ввод с клавиатуры и мне нужно как раз сложить это в словарь и отправить в базу данных.

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

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