从dicts列表中获取"密钥"

1 python

我有以下数据:

[{'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']}]
Run Code Online (Sandbox Code Playgroud)

获取密钥列表的最佳方法是什么(好像它是dict而不是数组)?目前我在做:

>>> [list(i.keys())[0] for i in e.original_column_data]
['id', 'number', 'id']
Run Code Online (Sandbox Code Playgroud)

但这感觉有点hackish

jua*_*aga 5

什么是hacky呢?它有点不优雅.您只需要执行以下操作:

>>> 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']
Run Code Online (Sandbox Code Playgroud)

或者如果您更喜欢单行:

>>> [k for d in data for k in d]
['id', 'number', 'id']
Run Code Online (Sandbox Code Playgroud)

  • `.extend` 接受一个可迭代对象,并将可迭代对象中的所有元素添加到列表中。`dict` 对象是*在其键上*的可迭代对象。如果您想要值的可迭代,请使用“d.values()”,如果您想要键值对的可迭代,请使用“d.items()” (2认同)