列表合并问题:在一定条件下合并二维数组

Posted

技术标签:

【中文标题】列表合并问题:在一定条件下合并二维数组【英文标题】:Merge of list problem: merging two-dimensional array under certain conditions 【发布时间】:2022-01-18 14:07:46 【问题描述】:

如果前两个索引('2021-03-18''Night')相同,我想合并test_list 中的第三个索引(数字列表)。 例如:test_list:

[['2021-03-18', 'Night', [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27]],\
['2021-03-18', 'Night',[46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 57, 58, 59]],
['2021-03-19','Other', [33, 34, 35, 36, 37, 38, 57,58,59]]]

如何将其合并到这样的列表中? 期望的结果:

['2021-03-18', 'Night', [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 57, 58, 59]],
['2021-03-19', 'Other', [33, 34, 35, 36, 37, 38, 57,58,59]]
]

【问题讨论】:

【参考方案1】:
test_list = [['2021-03-18', 'Night', [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27]], \
    ['2021-03-18', 'Night', [46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 57, 58, 59]], \
    ['2021-03-19','Other', [33, 34, 35, 36, 37, 38, 57,58,59]]]

d = 
for date, key, lst in test_list:
    if (date, key) in d:
        d[(date, key)] += lst
    else:
        d[(date, key)] = lst

result = [list(key) + item for key, item in d.items()]

【讨论】:

帮助很大。谢谢。有没有办法让第三个索引(数字列表)成为一个列表? 只有可散列的值才能成为字典的索引。当然,如果你想列出清单。将+= lst=lst 更改为+= [lst]=[lst] 在我的解决方案中,我使用复杂键作为元组制作字典。 IE。 tuple 是字典的键。它是一维结构。

以上是关于列表合并问题:在一定条件下合并二维数组的主要内容,如果未能解决你的问题,请参考以下文章

Python进行数组合并的方法

追加/合并二维数组

vue 二维数组合并一维数组

vue 二维数组合并一维数组

vue 二维数组合并一维数组

PHP二维数组合并