列表合并问题:在一定条件下合并二维数组
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 是字典的键。它是一维结构。以上是关于列表合并问题:在一定条件下合并二维数组的主要内容,如果未能解决你的问题,请参考以下文章