jon*_*box 1 python list python-2.7
我需要从像这样的词典列表中生成2个列表{'key1': 'val1', 'key2': 'val2', ...}.在功能风格(但2通):
list_key1 = map(itemgetter('key1'), any_list)
list_key2 = map(itemgetter('key2'), any_list)
Run Code Online (Sandbox Code Playgroud)
通常的风格(1通):
list_key1, list_key2 = [], []
for i in any_list:
list_key1.append(i['key1'])
list_key2.append(i['key2'])
Run Code Online (Sandbox Code Playgroud)
有没有办法以功能风格和1次通过?
您可以将多个按键itemgetter,zip映射的输出,然后把它解压到两个元:
list_key1, list_key2 = zip(*map(itemgetter('key1', 'key2'), any_list))
Run Code Online (Sandbox Code Playgroud)
如果您更喜欢输出为两个列表,则可以将它们映射到列表构造函数:
list_key1, list_key2 = map(list, zip(*map(itemgetter('key1', 'key2'), any_list)))
Run Code Online (Sandbox Code Playgroud)