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

Python中如何让for循环复用自身输出按指定次数重复执行?

实现方案

在外层增加一个控制迭代次数的循环,用临时变量存储当前世代的种群,每轮迭代生成新种群后直接覆盖临时变量即可,无需额外定义函数或使用递归。

完整示例代码

# 初始第一代种群
gen1 = [(214, 66, 229, 87, 259), (256, 11, 249, 75, 242), (247, 41, 206, 4, 194), (214, 61, 172, 59, 225), (270, 78, 238, 69, 261), (235, 22, 175, 31, 213), (272, 37, 222, 80, 222), (233, 70, 207, 33, 218), (227, 38, 244, 47, 229), (264, 76, 246, 52, 239), (273, 2, 201, 10, 273), (215, 85, 205, 4, 199), (268, 9, 235, 51, 195), (236, 53, 198, 43, 273), (224, 27, 212, 29, 236), (275, 64, 190, 62, 257), (226, 23, 178, 44, 202), (219, 19, 196, 8, 227), (227, 60, 238, 15, 213), (216, 62, 185, 73, 192)]
# 自定义迭代次数,比如要迭代10次就设为10
iter_times = 10
# 用current_gen变量持有当前世代的种群,初始为第一代
current_gen = gen1

for _ in range(iter_times):
    next_gen = []
    # 遍历当前世代的所有个体,执行你的交叉等操作
    for Po in current_gen:
        # 这里替换为你实际的操作逻辑,处理后得到新个体new_po
        new_po = Po  # 示例占位,替换为你的运算结果
        next_gen.append(new_po)
    # 迭代完成后,将新种群赋值给current_gen,作为下一轮迭代的输入
    current_gen = next_gen

# 所有迭代完成后,current_gen就是最终世代的种群
print(current_gen)

逻辑说明

  • 外层的range(iter_times)控制迭代总次数,和你要求的执行次数完全匹配
  • 所有原有逻辑不需要改动,只需要把原来遍历的gen1换成可变的current_gen变量即可
  • 每轮迭代结束后直接用新生成的next_gen覆盖current_gen,自动完成输入的迭代更新
    如果需要保留每一代的种群,可以额外加一个列表存储每一轮的current_gen即可。

内容的提问来源于stack exchange,提问作者Sayanta Seth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:15:00