You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:如何高效实现可迭代对象的无限循环迭代?

高效实现列表的无限循环迭代

需求与现有实现

需要对包含n个元素(n>1)的列表实现无限循环迭代,遍历至末尾时自动重启,核心诉求为迭代速度最优,因此禁止使用自定义方法或try-catch语句。

当前通过维护索引实现玩家轮换逻辑,代码如下:

class Player(): 
    pass # 玩家类的具体实现省略

# 初始化
players = [Player(), Player(), Player()]
current_player_index = 0
current_player = players[current_player_index]

# 游戏循环
turn_count = 0
while(turn_count < 100): # 自定义最大回合数
    turn_count += 1
    current_player_index += 1
    if current_player_index == len(players): 
        current_player_index = 0
    current_player = players[current_player_index]

迭代效果示例要求

若可迭代对象为food=["h","a","m"],连续调用next()十次后,拼接结果需为"hamhamhamh"。

采纳的高效解决方案

使用Python标准库itertools中的cycle方法,该方法专门用于创建无限循环的迭代器,底层实现高效,完全符合速度最优的要求,代码如下:

import itertools

class Player(): 
    pass # 玩家类的具体实现省略

# 初始化
players = [Player(), Player(), Player()]
players_iterable = itertools.cycle(players)
current_player = next(players_iterable)

# 游戏循环
turn_count = 0
while(turn_count < 100): # 自定义最大回合数
    turn_count += 1
    current_player = next(players_iterable)

内容的提问来源于stack exchange,提问作者33fred33

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 20:17:25