如何生成一个单次排列多个列表在Python 2.7?

问题描述 投票:1回答:1

我需要生成像{'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通做到这一点?

python python-2.7 list
1个回答
5
投票

您可以将多个键itemgetterzip映射输出,然后将其解压到两个元:

list_key1, list_key2 = zip(*map(itemgetter('key1', 'key2'), any_list))

如果你喜欢的输出是两个列表,而不是您可以将它们映射到表的构造函数:

list_key1, list_key2 = map(list, zip(*map(itemgetter('key1', 'key2'), any_list)))
© www.soinside.com 2019 - 2024. All rights reserved.