我有以下数据:
[{'id': ['132605', '132750', '132772', '132773', '133065', '133150', '133185', '133188', '133271', '133298']},
{'number': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']},
{'id': ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1']}]
获取键列表的最佳方法是什么(好像它是字典而不是数组)?目前我正在做:
>>> [list(i.keys())[0] for i in e.original_column_data]
['id', 'number', 'id']
但是感觉有点黑
答案 0 :(得分:5)
这有什么不好的地方?这有点不雅致。您只需要执行以下操作:
>>> keys = []
>>> data = [{'id': ['132605', '132750', '132772', '132773', '133065', '133150', '133185', '133188', '133271', '133298']},
... {'number': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']},
... {'id': ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1']}]
>>> for d in data:
... keys.extend(d)
...
>>> keys
['id', 'number', 'id']
或者如果您喜欢单线:
>>> [k for d in data for k in d]
['id', 'number', 'id']
答案 1 :(得分:2)
这更简单,并且执行相同的操作:
[k for d in e.original_column_data for k in d]
=> ['id', 'number', 'id']
答案 2 :(得分:2)
第一种方式
字典上的迭代为您提供了它的键,因此很简单
>>> [key for key in dict]
给出一个键列表,您可以使用
>>> [key for dict in dict_list for key in dict]
第二种方式
使用.key()
(在您的代码中使用)
但无需使用list()
(编辑:适用于python 2)
它将是这样的:
>>> [dict.keys()[0] for dict in dict_list]
在您的代码中,字典只有一个键,因此这两个键具有相同的结果。
但是我更喜欢第一个,因为它提供了所有词典的所有键