在给定密钥的字典列表中查找密钥的值

时间:2013-02-15 09:51:41

标签: python list dictionary

我想从Python中的以下变量中获取['a','b']:

mylist = [{'A': ['a','b']}, {'B': ['c','d']}] 

keys = ['A']

我已经看到了使用itemgetter的各种问题和答案,但这只有在列表中的词典键相同时才有效。 (如果我在我的数据上使用itemgetter,它将返回一个KeyError)

有谁知道我如何才能做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:1)

我将mylist变成一个字典:

In [27]: d = dict(reduce(operator.add, (x.items() for x in mylist)))

然后查询它:

In [28]: [d[k] for k in keys]
Out[28]: [['a', 'b']]

答案 1 :(得分:0)

如果我理解正确,你想要这个:

mylist[0][keys[0]]

这是因为您的词典放在一个列表中,因此您需要先将其删除:mylist[0]。然后,您可以使用字符串'A'索引字典,该字符串也是列表的第一个元素,即keys[0]。将两者放在一起,就可以得出上面突出显示的声明。