是否可能为具有最小一个“重新循环”的另一个大小的循环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!
答案 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)
>>> 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']