gpt4 book ai didi

python - 嵌套列表结构中的聚合数据

转载 作者:太空宇宙 更新时间:2023-11-04 11:08:50 24 4
gpt4 key购买 nike

我有一个具有以下结构的嵌套子列表的列表

in_data = 
[
[
['name', 'name_1'],
['item_B', '2'],
['item_C', '3'],
['item_D', '4']
],
[
['name', 'name_2'],
['item_B', '5'],
['item_A', '2']
],
[
['name', 'name_3'],
['item_B', '6'],
['item_C', '7']
]
]

我正在尝试收集 in_data 中的所有数据并制作一个包含子列表的唯一列表,一个用于所有“标题”/名称 并且每个项目一个 + 正确顺序的值。因此信息得以保留,但在不同的数据结构中。

我要实现这个列表:

res_list = 
[
['name', ' name_1', ' name_2', 'name_3'],
['item_B', '2', '5', '6'],
['item_C', '3','-', '7'],
['item_D', '4','-', '-'],
['item_A', '-','2', '-']
]

我正在尝试以最 pythonic 的方式来做。我尝试使用 for 循环和 map() + lambda 但没有成功。

会是简单的方法吗?

最佳答案

优化方法(由复合字典键 (<skill name>, <column name>)dict.get 方法提供支持):

header = ['names']
names = set()
d = {}

for lst in in_data:
col_name = lst[0][-1]
header.append(col_name)
for name, val in lst[1:]:
names.add(name)
d[name, col_name] = val

res = [[n, *[d.get((n, h), '-') for h in header[1:]]] for n in names]
res.insert(0, header)
print(res)

输出:

[['names', 'name_1', 'name_2', 'name_3'],
['item_C', '3', '-', '7'],
['item_D', '4', '-', '-'],
['item_B', '2', '5', '6'],
['item_A', '-', '2', '-']]

关于python - 嵌套列表结构中的聚合数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58790424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com