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

Python中如何将循环索引整合到变量名称中?

如何在Python循环中创建带索引的变量名记录运行时长?

嘿,作为Python新手,你想在循环里给每次模拟的运行耗时创建duration1、duration2这类带索引的变量,其实非常不推荐直接生成这类动态变量名——这种做法会让你的代码变得混乱,后续维护和遍历这些变量都会很麻烦。Python里有更优雅、更易维护的方式来处理这种场景,我给你梳理几个方案:

首选方案:用列表存储耗时

列表是最适合这种场景的容器,每次循环把耗时添加进去,之后可以通过索引快速访问,操作起来也最灵活:

import time
import subprocess

durations = []  # 初始化一个空列表来存所有耗时
i = 1
while i <= 5:  # 这里替换成你实际需要的循环次数
    start_time = time.time()
    return_code = subprocess.call("runtheprogramm")
    elapsed_time = time.time() - start_time
    print(f"--- {elapsed_time} seconds ---")
    durations.append(elapsed_time)  # 把当前次的耗时加入列表
    i += 1

# 后续查看结果:
# 第一次运行的耗时是 durations[0],第二次是 durations[1]...
# 如果习惯从1开始索引,可以先给列表加个占位符:
# durations = [None]  # 索引0不用,从1开始存储
# 然后用 durations.append(elapsed_time) 后,durations[1]就是第一次的耗时

备选方案:用字典存储(保留类似duration1的键名)

如果你确实想要类似duration1这样的“变量名”形式,可以用字典来存储,键就是你想要的字符串,值是对应耗时:

import time
import subprocess

duration_dict = {}  # 初始化空字典
i = 1
while i <= 5:
    start_time = time.time()
    return_code = subprocess.call("runtheprogramm")
    elapsed_time = time.time() - start_time
    print(f"--- {elapsed_time} seconds ---")
    duration_dict[f"duration{i}"] = elapsed_time  # 动态生成键名
    i += 1

# 后续查看:比如要取第一次的耗时,就用 duration_dict["duration1"]

不推荐的方案:动态创建全局变量

如果你非要生成duration1这类独立变量,可以用globals()函数操作全局命名空间,但我强烈不建议这么做——会让你的代码逻辑变得不透明,后续排查问题也很困难:

import time
import subprocess

i = 1
while i <= 5:
    start_time = time.time()
    return_code = subprocess.call("runtheprogramm")
    elapsed_time = time.time() - start_time
    print(f"--- {elapsed_time} seconds ---")
    globals()[f"duration{i}"] = elapsed_time  # 动态创建全局变量
    i += 1

# 之后你可以直接用 duration1、duration2 这些变量,但真的不推荐!

总的来说,优先选择列表或者字典的方案,不仅代码更清晰,后续要做统计(比如计算平均耗时、找出最长/最短耗时)也会方便很多。

内容的提问来源于stack exchange,提问作者Andreas Eugster

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:47:32