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]
这回答了你的问题吗?这回答了你的问题吗?