我如何在Python3中遍历2个列表,但是如果再次用尽列表1遍历它

问题描述

所以可以说我有2个列表。

A = ['A','B','C']
B = [1,2,3,4,5]

如您所见,两个列表的长度都不同。现在,我想知道如何使它遍历两个列表,但是如果列表A已被完全遍历,则在仍然等待列表B完成的同时再次遍历列表A。

示例输出

A1
B2
C3
A4
B5

不确定这是否有意义,如果您想让我进一步解释,我很乐意这样做。

解决方法

使用itertools.cycle

例如:

from itertools import cycle

A = cycle(['A','B','C'])
B = [1,2,3,4,5]

for k,v in zip(A,B):
    print(f"{k}{v}")

输出:

A1
B2
C3
A4
B5
,

尝试一下

m,n = len(A),len(B)
for idx in range(max(m,n)):
    print(f'{A[idx % m]}{B[idx % n]}')

输出:

A1
B2
C3
A4
B5
,

尝试一下,

A = ['A','C']
B = [1,5]
j=0
for i in B:
    if j<len(A):
        print(f'{A[j]}{i}')
        j+=1
    else:
        j=0
        print(f'{A[j]}{i}')
        j+=1