2016-05-13 2 views
1

У меня есть два списка питона, как следующее:список Преобразовать в список словарей в Python

fruits = ["apple", "banana", "guava", "grapes"] 
colour = ["red", "yellow", "green", "black"] 

Я хочу, чтобы преобразовать их в словарь в следующем формате:

dictionary = [{"fruit":"apple", "colour":"red"},{"fruit":"banana", "colour":"yellow"}...] 
+1

рассмотрите возможность предоставления дополнительной информации, такой как код, который вы уже пробовали и т. Д. :) – Kannaj

+0

Очень похоже на следующее: http://stackoverflow.com/questions/4576115/convert-a-list-to-a -dictionary-in-python? rq = 1 –

ответ

10

ZiP плод ваш и цветные списки вместе с помощью zip() function, и построить новый словарь из каждой пары:

[{'fruit': f, 'colour': c} for f, c in zip(fruits, colour)] 

Для создания вывода списка из цикла используется list comprehension.

Демо:

>>> fruits = ["apple", "banana", "guava", "grapes"] 
>>> colour = ["red", "yellow", "green", "black"] 
>>> [{'fruit': f, 'colour': c} for f, c in zip(fruits, colour)] 
[{'colour': 'red', 'fruit': 'apple'}, {'colour': 'yellow', 'fruit': 'banana'}, {'colour': 'green', 'fruit': 'guava'}, {'colour': 'black', 'fruit': 'grapes'}] 
+0

Как всегда хороший ответ от вас! Но имейте в виду, что даже начинающие Python могут не понимать zipping списков или циклов с несколькими присваиваниями переменных в понимании списка ... – linusg

+2

@linusg: Я здесь для последующих комментариев, обычно есть вопросы и документация SO, мы может указывать на. –

0

Хорошее решение, которое я нашел, чтобы использовать внешний файл CSV для управления словаря например dict.csv является directry из CSV-файла

import csv 
import os 

dictionary = os.getcwd() + r'\dict.csv' 
with open(dictionary, mode='r') as infile: 
     reader = csv.reader(infile) 
     mydict = {rows[0]:rows[1] for rows in reader} 

и в файле csv может быть первый столбец, как второй цвет фруктов, как цвет. Легко редактировать и управлять

Смежные вопросы