如何从Python列中的键和值字典创建字典?

时间:2014-12-17 18:05:13

标签: python dictionary

我有一个键的字典:值对和一个键列表如下:

dict1 = {'a':(1, 2), 'b':(2,2), 'c':(3,3), 'd':(4,4)}
list1 = ['a', 'c']

我现在想要创建一个只包含从list1获取的键:值对的新词典。所以最终的结果是下面的list2:

list2 = {'a':(1, 2), 'c':(3,3)}

非常感谢帮助。我目前正在使用python 2.5.4,如果这有什么不同?

提前谢谢你。汤姆

5 个答案:

答案 0 :(得分:5)

一个很好的表达,即使在2.5你有一个简单的解决方案

dict((k, dict1[k]) for k in list1)

dict有一个初始化器,它接受一个可迭代的元组。内部表达式一次生成一个元组,查看list1中的键并从dict1获取值

如果KeyError包含不在list1中的密钥,则上述结果会产生dict1,如果情况如此,那么下面的内容将通过查看中的密钥来生效dict并检查它在list1

中的存在
dict((k, v) for k, v in dict1.iteritems() if k in list1)

答案 1 :(得分:0)

你可以这样做:

dict2 = {}
for key in list1:
    dict2[key] = dict1[key]

(我将list2重命名为dict2,似乎更有意义。)

答案 2 :(得分:0)

这样的事情:

new_dict = {}
for i in list1:
    new_dict[i] = dict1[i]

答案 3 :(得分:0)

您可以通过简单的循环执行此操作:

result = {}

for item in list1:
    result[item] = dict1[item]

或者,在2.7+中,有一个词典理解:

result = {key: value
          for key, value in dict1.items()
              if key in list1}

答案 4 :(得分:-1)

做一些简单的事情:

for item in list1:
    list2[item] = dict1[item]