“给定列表list1和list2具有相同的长度,创建一个新列表,其中包含list1的第一个元素,后跟list2的第一个元素,后跟list1的第二个元素,后跟第二个元素list2,依此类推(换句话说,新列表应该由list1和list2的交替元素组成)。例如,如果list1包含[1,2,3],list2包含[4,5,6],那么新的list应该包含[1,4,2,5,3,6]。将新列表与变量list3相关联。“
list1 = []
list2 = []
list3 = []
for i in range(len(list3)):
list3.append(list1)
list3.append(list2)
我很确定这是错误的。我应该改进什么?顺便说一下,我认为这必须包括len和范围。
答案 0 :(得分:5)
我会使用列表理解,而不是len
或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']
答案 1 :(得分: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]
答案 2 :(得分:2)
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = []
for x1, x2 in zip(list1, list2):
list3.extend([x1, x2])
答案 3 :(得分: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]