Skip to main content
 首页 » 编程设计

python之如何多次循环列表

2025年05月04日10qq78292959

你能否一遍又一遍地遍历列表(使用其中有一个步骤的范围)直到列表中的所有元素都被循环访问?

我有以下列表:

result = [] 
list = ['ba', 'cb', 'dc', 'ed', 'gf', 'jh'] 

我希望结果(结果)是:

result = ['dc', 'cb', 'ba', 'jh', 'gf', 'ed'] 

我如何让它循环遍历第一个列表,并将每个元素附加到结果列表,从第三个元素开始并使用 5 作为一个步骤,直到所有元素都在结果列表中?

请您参考如下方法:

不需要多次循环一个列表。作为一种更pythonic的方式你可以使用itertools.cycle和 islice :

>>> from itertools import cycle,islice 
>>> li= ['ba', 'cb', 'dc', 'ed', 'gf', 'jh'] 
>>> sl=islice(cycle(li),2,None,4) 
>>> [next(sl) for _ in range(len(li))] 
['dc', 'ba', 'gf', 'dc', 'ba', 'gf'] 

请注意,在您的预期输出中,步骤是 5 而不是 4。因此,如果您使用 5 作为切片步骤,您将获得预期的输出:

>>> sl=islice(cycle(li),2,None,5) 
>>> [next(sl) for _ in range(len(li))] 
['dc', 'cb', 'ba', 'jh', 'gf', 'ed']