如何获取列表中所有字典的键?

1 投票
5 回答
791 浏览
提问于 2025-04-17 15:25

假设我有一个字典列表,长得像这样:

[{1: "a"}, {2: "b"}]

我该怎么做才能得到这些字典里所有的键的列表呢(也就是[1, 2])?

5 个回答

1

如果你使用下面的代码,就不需要导入其他东西。

>>> map(lambda x: x.keys()[0], [{1: "a"}, {2: "b"}])
[1, 2]

不过,这样写不是很规范...

4

如果你想避免多导入一个模块,可以使用列表推导式:

>>> l = [{1: 'a'}, {2: 'b'}]
>>> [k for d in l for k in d.keys()]
[1, 2]
8

你可以使用 chain.from_iterable 来实现:

>>> from itertools import chain
>>> l = [{1: "a"}, {2: "b"}]
>>> list(chain.from_iterable(l))
[1, 2]

或者,如果你使用列表推导式的话,可以省略 .keys()。在 Python 2.x 中,这样做还可以避免创建一个不必要的列表:

>>> [k for d in l for k in d]
[1, 2]

撰写回答