Getting “keys” from list of dicts
本问题已经有最佳答案,请猛点这里访问。
我有以下数据:
1 2 3 | [{'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']}] |
获取键列表的最佳方法是什么(就像它是一个dict而不是一个数组)?目前我正在做:
1 2 | >>> [list(i.keys())[0] for i in e.original_column_data] ['id', 'number', 'id'] |
但那感觉有点老土
这是什么下流的事?有点不雅。您只需执行以下操作:
1 2 3 4 5 6 7 8 9 | >>> 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'] |
或者,如果您喜欢一个内衬:
1 2 | >>> [k for d in data for k in d] ['id', 'number', 'id'] |
第一种方式
字典上的迭代给了你它的键,所以一个简单的
1 | >>> [key for key in dict] |
给你一张钥匙清单,你就能得到你想要的东西
1 | >>> [key for dict in dict_list for key in dict] |
第二条道路
使用
1 | >>> [dict.keys()[0] for dict in dict_list] |
在代码中,字典只有一个键,因此这两个键的结果相同。但是我更喜欢第一个,因为它提供了所有字典的所有键
这很简单,并且做同样的事情:
1 2 | [k for d in e.original_column_data for k in d] => ['id', 'number', 'id'] |