2016-05-13 97 views
1

字典的名单我有两个Python列表如下所示:转换列表在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 -python中的词典?rq = 1 –

回答

10

邮编你的水果和颜色列表一起使用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初学者也可能不理解在列表理解中压缩列表或循环的几个变量赋值... – linusg

+2

@linusg:我在这里接受后续评论,通常有SO问题和文档可以指向。 –

0

一个很好的解决方案,我发现是使用一个外部的CSV文件来管理您的字典 例如dict.csv为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文件中可以具有第一列作为第二列的颜色。易于修改和管理