Python 通过组合两个列表获得平面列表

Python 通过组合两个列表获得平面列表,python,Python,如果我有两个列表:A=[1,2,3],B=[4,5,6]。如何像这样组合它们:C=[1,4,2,5,3,6]?有没有一种有效的方法来做这件事,而不是像D=A[0]+B[0]+A[1]+B[1]+A[2]+B[2]那样做?使用zip来聚合这两个iterables,并用另一个迭代级别将结果展平: [i for t in zip(A,B) for i in t] # [1, 4, 2, 5, 3, 6] 使用zip聚合两个iterables,并使用另一个迭代级别将结果展平: [i for t in

如果我有两个列表:
A=[1,2,3]
B=[4,5,6]
。如何像这样组合它们:
C=[1,4,2,5,3,6]
?有没有一种有效的方法来做这件事,而不是像
D=A[0]+B[0]+A[1]+B[1]+A[2]+B[2]
那样做?

使用
zip
来聚合这两个iterables,并用另一个迭代级别将结果展平:

[i for t in zip(A,B) for i in t]
# [1, 4, 2, 5, 3, 6]

使用
zip
聚合两个iterables,并使用另一个迭代级别将结果展平:

[i for t in zip(A,B) for i in t]
# [1, 4, 2, 5, 3, 6]

使用循环遍历列表:

res = []
for i in range(min(len(A), len(B))):
  res.append(A[i])
  res.append(B[i])

当其中一个列表的元素用完时,此操作将立即停止。

使用循环遍历列表:

res = []
for i in range(min(len(A), len(B))):
  res.append(A[i])
  res.append(B[i])
一旦其中一个列表的元素用完,此操作就会停止

>>> C, C[::2], C[1::2] = A+B, A, B
>>> C
[1, 4, 2, 5, 3, 6]
我要切片

>>> C, C[::2], C[1::2] = A+B, A, B
>>> C
[1, 4, 2, 5, 3, 6]

这回答了你的问题吗?这回答了你的问题吗?