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

Python中变量赋值与索引访问的性能差异及异构结构阈值分析

Python列表访问与变量赋值的性能对比问题

核心问题

  • 问题1:赋值操作比索引访问的速度慢/快多少?
  • 问题2:在Python中,当重复访问列表元素时,何时重新声明变量的方式比直接访问元素更高效?

实验示例

使用如下测试列表:

import time

fruits = ["orange", "banana", "strawberry", "apple"]

执行两组测试代码:

第一组:每次循环直接访问列表元素

timesToRun = 1000000
timesToAccess = 100

start_time = time.time()
for x in range(timesToRun):
    for y in range(timesToAccess):
        tempFruit = fruits[2]  # 直接访问列表元素
print("--- %s seconds ---" % (time.time() - start_time))

第二组:先将列表元素赋值给变量,再循环访问变量

start_time = time.time()
for x in range(timesToRun):
    myFruit = fruits[2]  # 声明新变量
    for y in range(timesToAccess):
        tempFruit = myFruit  # 访问变量
print("--- %s seconds ---" % (time.time() - start_time))

实验结果

  • 当timesToAccess=100时:直接访问耗时5.268802165985107秒,变量访问耗时4.507154226303101秒,变量访问方式更快
  • 当timesToAccess=1时:直接访问耗时1.948554277420044秒,变量访问耗时2.1312568187713623秒,直接访问方式更快

延伸疑问

  • 上述性能反转的阈值是多少?
  • 针对字典或NumPy数组,该性能结论是否不同?
  • 声明新变量比直接访问列表慢多少?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:31:03