如何在python字典中迭代特定键的值?

时间:2013-11-26 04:47:37

标签: python python-2.7

我有类似的东西,

newlist = []

list =['a','b','c','d','e']

dict = {'a':['a','a1','a2','a3'],'b':['b','b1','b2','b3'],.....'e':['e','e1','e2','e3']
   }   

我试过这样,

for listval in list:
    newlist.append(dict[listval]].values())

但是没有得到预期的结果,我的期望是,

newlist = [['a','a1','a2','a3'],['b','b1','b2','b3'],....,['e','e1','e2','e3']]

3 个答案:

答案 0 :(得分:1)

new_list = [the_dict[k] for k in the_list]

或者某些键可能丢失:

new_list = [the_dict[k] for k in the_list if k in the_dict]

答案 1 :(得分:1)

试试这个 - :

newlist = [dict.get(i) for i in list if dict.has_key(i)]

它将处理key exists和其他错误。

以上将为你工作.. :))

答案 2 :(得分:0)

如果您确定所有密钥都在列表中,则可以使用map

list1 =['a','b','c','d','e']
dict1 = {'a':['a','a1','a2','a3'],'b':['b','b1','b2','b3'],'c':['c','c1','c2','c3'],'d':['d','d1','d2','d3'],'e':['e','e1','e2','e3']}
newlist = map(dict1.get, list1)