【发布时间】:2017-10-09 06:48:12
【问题描述】:
老实说,我之前希望有人问过这个问题,但经过 30 分钟的搜索,我没有任何运气。
假设我们有多个列表,每个列表长度相同,每个列表都包含不同类型的数据。我们想把它变成一个以数据类型为键的字典列表。
输入:
data = [['tom', 'jim', 'mark'], ['Toronto', 'New York', 'Paris'], [1990,2000,2000]]
data_types = ['name', 'place', 'year']
输出:
travels = [{'name':'tom', 'place': 'Toronto', 'year':1990},
{'name':'jim', 'place': 'New York', 'year':2000},
{'name':'mark', 'place': 'Paris', 'year':2001}]
使用基于索引的迭代很容易做到这一点:
travels = []
for d_index in range(len(data[0])):
travel = {}
for dt_index in range(len(data_types)):
travel[data_types[dt_index]] = data[dt_index][d_index]
travels.append(travel)
但这是 2017 年!必须有一个更简洁的方法来做到这一点!我们有 map、flatmap、reduce、list comprehensions、numpy、lodash、zip。除了我似乎无法将这些清晰地组合到这个特定的转换中。有什么想法吗?
【问题讨论】:
标签: python list dictionary data-structures