Skip to main content
 首页 » 编程设计

python之如何在 Python 2.7 的单 channel 数组中生成多个列表

2025年05月04日20qq号

我需要从字典列表中生成 2 个列表,例如 {'key1': 'val1', 'key2': 'val2', ...}。 函数式风格(但 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)))