Питон лист в словарь

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

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

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

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

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

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

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

takeout_prices = [2.50, 2.75, 4.50, 5.00]

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

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

Читайте также:  margin-top

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

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

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

Преобразовать список в словарь можно при помощи метода 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

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

  • [ключ_1, значение_1, ключ_2, значение_2,…] – Ключ: пары значений как непрерывные элементы списка.
  • Питон лист в словарь, [value_1, value_2, â € ¦] â € «Ключи находятся в одном списке, а значения – в другом списке.
  • [(ключ_1, значение_1), (ключ_2, значение_2),…] Ключ: пары значений как кортежи, и эти кортежи являются элементами списка.
  • Преобразование списка в словарь с элементом списка в качестве ключа и индексом в качестве значения.
  • Преобразование списка в словарь с элементом списка в качестве ключа, и значением по умолчанию.

В этом руководстве мы узнаем, как преобразовать эти форматы списков в словарь с помощью хорошо подробных примеров программ.

Пример 1

В этом примере мы преобразуем список формата Питон лист в словарь в словарь .

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

myList = ['a', 'apple', 'b', 'banana', 'c', 'cherry'] myDict = print(myDict)

Пример 2: преобразование списка ключей

В этом примере мы преобразуем список формата [(key_1, value_1), (key_2, value_2), â € ¦] в словарь .

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

listKeys = ['a', 'b', 'c'] listValues = ['apple', 'banana', 'cherry'] myDict = print(myDict)

Пример 3: преобразование списка кортежей

В этом примере мы преобразуем список формата [(key_1, value_1), (key_2, value_2), â € ¦] в словарь .

Мы будем использовать понимание словаря для преобразования списка кортежей в словарь.

myList = [('a', 'apple'), ('b', 'banana'), ('c', 'cherry')] myDict = print(myDict)

Пример 4: с индексом

В этом примере мы преобразуем список формата Питон лист в словарь в словарь .

myList = ['a', 'b', 'c'] myDict = print(myDict)

Пример 5: значение по умолчанию

В этом примере мы преобразуем список формата Питон лист в словарь в словарь .

myList = ['a', 'b', 'c'] defaultValue = 54 myDict = print(myDict)

Источник

How to Convert a List Into a Dictionary in Python

Take control of your data with Python. Learn to convert lists to dictionaries.

Hand holding a Python coding manual

Readers like you help support MUO. When you make a purchase using links on our site, we may earn an affiliate commission. Read More.

Converting a list to a dictionary is helpful if you want to create a key-value pair from that list. And if there are two lists, you can combine them into one dictionary as well.

A dictionary, however, gives you more control over your data. So let’s examine the different ways to convert lists into a dictionary in Python.

How to Convert a Single List to a Dictionary in Python

Provided that a list is symmetric (containing equal potential key-value pairs), you can convert it to a dictionary using the for loop.

To do this, place your loop in a dictionary comprehension:

m = ["frog", "dog", "Goat", "cat"]
d = 1] for a in range(0, len(m), 2)>
print(d)

Output: 'frog': 'dog', 'Goat': 'cat'>

The code may look complex at first, but it actually isn’t. You’re only telling Python to pick a pair each time it iterates through your list. Then it should make every item on the left of each pair the key to the one on its right side, which is its value.

The integer (2) within the range parenthesis, however, ensures that your code only accepts symmetric lists.

To understand its function, change the integer from 2 to 3. Then add an item to the list before running your code.

To achieve this without using the for loop, you can also use the built-in dict and zip functions of Python:

a = iter(m) # spin up an iterator on the list
result = dict(zip(a, a)) # Convert the iterated items into key-value pairs
print(result)

Output: 'frog': 'dog', 'Goat': 'cat'>

Unlike the looping method that you used earlier, the dict(zip()) function ignores any item without a pair.

For instance, if there are five items in a list, it ignores the fifth one and creates a matching key-value pair with the first four items:

Источник

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