Skip to main content
 首页 » 编程设计

python之两个不同长度列表的循环组合

2025年05月04日12zlslch

我有两个列表:

list1 = ['a','b','c'] 
list2 = ['1','2','3','4','5'] 

我想列出:

list3 = [('1','a'),('2','b'),('3','c'),('4','a'),('5','b')] 

也就是说,在它们之间做一个循环组合。所以,我的问题是:哪种方法更有效?

请您参考如下方法:

>>> from itertools import cycle 
>>> list1 = ['a','b','c'] 
>>> list2 = ['1','2','3','4','5'] 
>>> zip(list2, cycle(list1)) 
[('1', 'a'), ('2', 'b'), ('3', 'c'), ('4', 'a'), ('5', 'b')] 

正如一些人在评论中提到的,如果您想循环两个列表并获取前 n 个元素,您可以这样做,

>>> from itertools import islice, izip 
>>> list(islice(izip(cycle(list2), cycle(list1)), 5)) 
[('1', 'a'), ('2', 'b'), ('3', 'c'), ('4', 'a'), ('5', 'b')]