在字典列表中根据键查找值

-1 投票
2 回答
685 浏览
提问于 2025-04-17 15:59

我正在尝试从以下的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']]

撰写回答