Python - 使用相同长度的现有列表创建新列表?

Don*_*len 3 python

"给定列表list1和list2具有相同的长度,创建一个新列表,其中包含list1的第一个元素,后跟list2的第一个元素,后跟list1的第二个元素,后跟list2的第二个元素,以及等等(换句话说,新列表应该由list1和list2的交替元素组成).例如,如果list1包含[1,2,3]并且list2包含[4,5,6],那么新列表应该包含[1,4,2,5,3,6].将新列表与变量list3相关联."

    list1 = []
    list2 = []
    list3 = []
    for i in range(len(list3)):
        list3.append(list1)
        list3.append(list2)
Run Code Online (Sandbox Code Playgroud)

我很确定这是错误的.我应该改进什么?顺便说一句,我认为这必须包括len和范围.

wim*_*wim 5

我会用列表理解来做,而不是用len或者做任何事情range.例如:

>>> list1 = [1, 2, 3]
>>> list2 = ['a', 'b', 'c']
>>> zip(list1, list2)
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> [x for pair in zip(list1, list2) for x in pair]
[1, 'a', 2, 'b', 3, 'c']
Run Code Online (Sandbox Code Playgroud)


jam*_*lak 5

>>> from itertools import chain
>>> list1 = [1, 2, 3]
>>> list2 = [4, 5, 6]
>>> list(chain.from_iterable(zip(list1, list2)))
[1, 4, 2, 5, 3, 6]
Run Code Online (Sandbox Code Playgroud)