簡體   English   中英

如何按元素組合兩個列表列表?

[英]How to combine two lists of lists element-wise?

在 Python 中,我想以一種非常具體的方式組合列表列表,但我還沒有找到。 歡迎任何想法!

使用以下輸入:

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

我想得到以下 output:

[[[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]]]]

我需要所需的 output 以獲得正確的格式,以便能夠使用模塊tslearn中的 function TimeSeriesKMeans()和二維時間序列

由於您有嵌套列表,因此您需要將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]]]

您也可以使用itertools.chain

from itertools import chain

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM