【发布时间】:2020-05-17 15:28:39
【问题描述】:
sample_dict = [{'id':123, 'name':'ABC', 'loc':'XYZ'}, {'id':456, 'name':'DEF', 'loc':'ZYX'}, {'id':789, 'name':'GHI', 'loc':'YZX'}]
我想从给定的字典列表中选择键的值( id 和 name )。
我想要类似这样的结果:
result = ({'id': [123, 456, 789]}, {'name': ['ABC', 'DEF', 'GHI']})
除了下面列出的之外,还有其他实现吗?我想以更高的内存效率和更少的时间来实现这一点,因为我有数百万数据要解压。我们可以通过operator.itemgetter 或itertools 实现这一目标吗?哪个内存效率更高,消耗的时间更少?
使用字典和列表组合
{'id':[i.get('id') for i in sample_dict]}
{'name':[i.get('name') for i in sample_dict]}
使用地图
{'id': list(map(lambda x: x.get('id'), sample_dict))}
{'name': list(map(lambda x: x.get('name'), sample_dict))}
【问题讨论】:
标签: python python-3.x itertools