【问题标题】:Does list.index() implement cachinglist.index() 是否实现缓存
【发布时间】:2026-02-05 12:45:01
【问题描述】:

在 Python 中,list.index() 方法是否实现缓存?

换句话说,如果我这样做了

myList = [3,5,4,7]
print myList.index(5) 
print myList.index(5) 

方法的第二次调用是否必须遍历数组,或者该方法是否足够聪明,知道它已经有输入的答案:5?

显然,只要数组被修改,缓存就会失效,因此必须被清除

【问题讨论】:

标签: python list python-3.x caching methods


【解决方案1】:

你可以通过做一个简单的分析来找出答案。

import cProfile,random
def scrambled(orig): # scramble list
    dest = orig[:]
    random.shuffle(dest)
    return dest

myList = scrambled(range(0,10000000))

cProfile.run('print myList.index(1)') #3 func, same amount of time
cProfile.run('print myList.index(1)') #3 func, same amount of time

因此没有

【讨论】: