Python双循环

Python双循环,python,list,loops,Python,List,Loops,是否可以使用最小的“重新循环”循环另一个大小的2个列表 例如: list = [1,2,3,4,5,6,7,8,10] list2 = [a,b] newlist = [] for number, letter in zip(list, list2): newlist.append(item) newlist.append(item2) 循环在[1a,2b]处停止,因为列表2中没有更多的项目,列表2是否可以重新开始,直到列表1为空?即: 新列表=[1a、2b、3a、4b、

是否可以使用最小的“重新循环”循环另一个大小的2个列表

例如:

list = [1,2,3,4,5,6,7,8,10]
list2 = [a,b]

 newlist = []
 for number, letter in zip(list, list2):
    newlist.append(item)
    newlist.append(item2)
循环在[1a,2b]处停止,因为列表2中没有更多的项目,列表2是否可以重新开始,直到列表1为空?即: 新列表=[1a、2b、3a、4b、5a、6b]等

thkx

使用:


另外,您不应该使用
list
作为变量名,因为内置函数
list()

已经使用了该名称。第二个列表的长度是否是第一个列表的一个因子?也就是说,它会被重复很多次吗?@AshwiniChaudhary:不完全是重复,因为它特别要求一种没有itertools的方法。我敢肯定这是一个其他东西的重复,不过,我想我自己已经回答了这个问题。@DSM这个:@AshwiniChaudhary:这不是我想的,但是
cycle
使用起来很有趣,所以它可能很常见。^)
>>> from itertools import cycle
>>> l1 = [1,2,3,4,5,6,7,8,10]
>>> l2 = ['a','b']
>>> map(''.join, zip(map(str, l1), cycle(l2)))
['1a', '2b', '3a', '4b', '5a', '6b', '7a', '8b', '10a']
>>> l1 = [1,2,3,4,5,6,7,8,10]
>>> l2 = ['a','b']
>>> 
>>> from itertools import cycle
>>> 
>>> for number, letter in zip(l1, cycle(l2)):
...     print number, letter
... 
1 a
2 b
3 a
4 b
5 a
6 b
7 a
8 b
10 a