如何在元素上组合两个列表列表?

时间:2020-04-07 08:27:43

标签: python list time-series reorderlist

在Python中,我想以一种非常特定的方式来合并列表列表,但是我还找不到它。任何想法都欢迎!

使用以下输入:

firstList = [[[1], [2], [3]], [[4], [5], [6]]]
secondList = [[[11], [12], [13]], [[14], [15], [16]]]

我想得到以下输出:

[[[1, 11], [2, 12], [3, 13]], [[4, 14], [5, 15], [6, 16]]]

我尝试过:

[list(a) for a in zip(firstList, secondList)]

但这返回:

[[[[1], [2], [3]], [[11], [12], [13]]], [[[4], [5], [6]], [[14], [15], [16]]]]

我需要所需的输出以获取正确的格式,以便能够使用模块TimeSeriesKMeans()中的函数tslearn,并在2维时间序列中使用

2 个答案:

答案 0 :(得分:1)

由于您有嵌套列表,因此需要将列表中的zip翻倍。您可以这样做:

[[a + b for a, b in zip(x, y)] for x, y in zip(firstList, secondList)]

代码

firstList = [[[1], [2], [3]], [[4], [5], [6]]]
secondList = [[[11], [12], [13]], [[14], [15], [16]]]

result = [[a + b for a, b in zip(x, y)] for x, y in zip(firstList, secondList)]
# [[[1, 11], [2, 12], [3, 13]], [[4, 14], [5, 15], [6, 16]]]

答案 1 :(得分:0)

您也可以使用itertools.chain

from itertools import chain

result = [list(zip(chain(*l1), chain(*l2)))
          for l1, l2 in zip(firstList, secondList)]
相关问题