如何在Python中合并两个列表的每个元素?

Lia*_*Fan 5 python dictionary list

我要合并的列表中有很多列表:看起来像这样:

[[1,2,3,4,5], [6,7,8,9,0], [2,5,7,9,4], [4,7,8,43,6]...]
Run Code Online (Sandbox Code Playgroud)

列表中最多约有20个这些列表。现在,我想将第一个列表和第二个列表合并,如下所示:

[[1,6], [2,7], [3,8], [4,9], [5,0]]
Run Code Online (Sandbox Code Playgroud)

然后我想从第一个和第三个开始再做一次,直到最后。然后从第二个列表到第三,第四...最后一行(但不是第一行,因为已经由第一到第二个列表完成了)重新开始。我该如何编写实现此目的的代码?

这是我到目前为止的内容:

xcols =包含我上面显示的所有列表的列

def MakeLists(xcols):
    multilist = []
    for i in xcols:
        for j in xcols[index(i):]:
            currentlist = map(list.__add__, i, j)
            multilist.append(currentlist)
Run Code Online (Sandbox Code Playgroud)

但是在运行时给我一个错误,可能是在地图部分,因为我不知道如何首先将每个元素转换为列表然后进行映射。任何帮助都会很棒。谢谢!

str*_*nac 6

这样的事情怎么样:

>>> import itertools
>>> foo = [[1, 2, 3], [4, 5, 6], [7, 8, 8]]
>>> for p in itertools.permutations(foo, 2):
...     print zip(*p)
... 
[(1, 4), (2, 5), (3, 6)]
[(1, 7), (2, 8), (3, 8)]
[(4, 1), (5, 2), (6, 3)]
[(4, 7), (5, 8), (6, 8)]
[(7, 1), (8, 2), (8, 3)]
[(7, 4), (8, 5), (8, 6)]
Run Code Online (Sandbox Code Playgroud)

编辑:如果你只想压缩一个列表,后面的列表,正如评论中的人所解释的那样:

>>> import itertools
>>> for p in itertools.combinations(foo, 2):
...     print zip(*p)
... 
[(1, 4), (2, 5), (3, 6)]
[(1, 7), (2, 8), (3, 8)]
[(4, 7), (5, 8), (6, 8)]
Run Code Online (Sandbox Code Playgroud)