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

2024-05-20 09:39:17 发布

您现在位置:Python中文网/ 问答频道 /正文

“给定长度相同的列表list1和list2,创建一个新列表,由list1的第一个元素后跟list2的第一个元素,list1的第二个元素后跟list2的第二个元素,依此类推(换句话说,新列表应该由list1和list2的交替元素组成)。例如,如果list1包含[1,2,3],list2包含[4,5,6],则新列表应包含[1,4,2,5,3,6]。将新列表与变量列表3关联。”

    list1 = []
    list2 = []
    list3 = []
    for i in range(len(list3)):
        list3.append(list1)
        list3.append(list2)

我很确定这是完全错误的。我应该改进什么?顺便说一下,我认为这必须包括镜头和范围。


Tags: in元素列表forlen错误range镜头
3条回答
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = []

for x1, x2 in zip(list1, list2):
    list3.extend([x1, x2])
>>> 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]

我会用列表理解来完成,而不是用lenrange来完成。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']

相关问题 更多 >