我需要生成像{'key1': 'val1', 'key2': 'val2', ...}
类型的字典列表2列表。在功能的风格(但2通):
list_key1 = map(itemgetter('key1'), any_list)
list_key2 = map(itemgetter('key2'), any_list)
在通常的风格(1次):
list_key1, list_key2 = [], []
for i in any_list:
list_key1.append(i['key1'])
list_key2.append(i['key2'])
有没有办法在实用的风格和1通做到这一点?
您可以将多个键itemgetter
,zip
映射输出,然后将其解压到两个元:
list_key1, list_key2 = zip(*map(itemgetter('key1', 'key2'), any_list))
如果你喜欢的输出是两个列表,而不是您可以将它们映射到表的构造函数:
list_key1, list_key2 = map(list, zip(*map(itemgetter('key1', 'key2'), any_list)))