list - python - 在字典列表中,快速获取键的方法

97 0

请思考下面的例子:
m =[{'a':1},{'b':2}]
我想在m中找到一个生成键列表的快捷方法,就像['a','b']一样,有没有不使用传统的for循环,最短或最简单的方式?

时间: 原作者:

67 4

一个简单的双循环循环和列表推导应该能做到。 遍历列表,对于列表中的每个元素,迭代键,


In [5]: m = [{'a':1},{'b':2}] 



In [6]: [k for item in m for k in item] 


Out[6]: ['a', 'b']



如果列表有重复的键,只需将最终输出转换为集合,然后将它转换为列表以获取唯一键,


In [19]: m = [{'a':1, 'b':2},{'a':3,'b':4}] 



In [20]: r = [k for item in m for k in item] 



In [21]: r 


Out[21]: ['a', 'b', 'a', 'b']



In [22]: r = list(set(r)) 



In [23]: r 


Out[23]: ['b', 'a']



原作者:
110 0

你可以使用列表推导,一个for循环的合成糖,


keys_list = [x for d in m for x in d.keys()]



注意,如果字典有共同的键,它们会在结果中出现多次。

如果只需要唯一键,则可以执行以下操作:


keys_list = list(set(x for d in m for x in d.keys()))



原作者:
93 4

如果你只需要唯一的键,请执行以下操作:


m = [{'a':1},{'b':2},{'b':3}]


print({x for d in m for x in d})



这个包含重复项:


print([x for d in m for x in d])



原作者:
...