Python双循环

时间:2014-01-10 15:45:43

标签: 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]因为list2中没有其他项目,list2是否可以重新开始直到list1为空?即:     newlist = [1a,2b,3a,4b,5a,6b]等?

thkx!

2 个答案:

答案 0 :(得分:6)

>>> 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

请参阅itertools.cycle

顺便说一句,您不应该使用list作为变量名,因为内置函数list()已经使用了该名称。

答案 1 :(得分:4)

使用itertools.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']