如何将列表中的相应元素分别添加到python字典键和值

时间:2013-05-13 10:41:51

标签: python list dictionary

我有2个相同长度的列表和一个字典

list1 = ['hello', 'goodbye', 'no', 'yes', 'if you say so']
list2 = ['a', 'b', 'c', 'd; e; f', 'g']
listDict = {}

我想分别将相应的值添加为键和值,因此字典的输出应该是这样的(并且顺序应该保持不变)

listDict = {'hello':'a', 'goodbye':'b', 'no':'c', 'yes':'d; e; f', 'if you say so':'g'}

我试过

for words in list1:
    for letters in list2:
        listDict[words]=[letters]

但结果不正确(我无法理解)。我怎么能得到如上所述的输出?

2 个答案:

答案 0 :(得分:4)

使用zip()

>>> list1 = ['hello', 'goodbye', 'no', 'yes', 'if you say so']
>>> list2 = ['a', 'b', 'c', 'd; e; f', 'g']
>>> dict(zip(list1,list2))
{'if you say so': 'g', 'yes': 'd; e; f', 'hello': 'a', 'goodbye': 'b', 'no': 'c'}

'yes' 'if you say so'被视为单个字符串,请使用,分隔它们:

>>> 'yes' 'if you say so'
'yesif you say so'

使用collections.OrderedDict保留顺序:

>>> from collections import OrderedDict
>>> OrderedDict(zip(list1,list2))

OrderedDict([('hello', 'a'), ('goodbye', 'b'), ('no', 'c'), ('yes', 'd; e; f'), ('if you say so', 'g')])

答案 1 :(得分:1)

list1 = ['hello', 'goodbye', 'no', 'yes' 'if you say so']
list2 = ['a', 'b', 'c', 'd; e; f', 'g']    
listDict = dict(zip(list1, list2))