3

“给定列表 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)

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

4

4 回答 4

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]
于 2013-03-26T05:28:17.860 回答
5

I would do it with a list comprehension, rather than anything with len or range. e.g.:

>>> 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']
于 2013-03-26T05:25:39.300 回答
2
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = []

for x1, x2 in zip(list1, list2):
    list3.extend([x1, x2])
于 2013-03-26T06:25:18.677 回答
0

请看下面的片段,也许它会有所帮助

>>> list1 = [1,2,3]
>>> list2 = [4,5,6]
>>> list3 = []
>>> for i in range(len(list1)):
...     list3.append(list1[i])
...     list3.append(list2[i])
...
>>> list3
[1, 4, 2, 5, 3, 6]
于 2013-03-26T05:23:34.223 回答