在字典列表中根据键查找值
我正在尝试从以下的Python变量中获取['a','b']:
mylist = [{'A': ['a','b']}, {'B': ['c','d']}]
还有
keys = ['A']
我看到过很多问题和答案提到使用itemgetter,但这只有在列表中字典的键相同时才有效。(如果我在我的数据上使用itemgetter,它会给我一个KeyError错误)
有没有人知道我该如何让它工作呢?
谢谢!
2 个回答
0
如果我理解得没错,你想要的是这个:
mylist[0][keys[0]]
这是因为你的字典放在一个列表里,所以你需要先把它拿出来,像这样:mylist[0]
。然后你可以用字符串'A'
来访问字典里的内容,这个字符串也是列表的第一个元素,也就是keys[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']]