由密鑰導入元件更快我有以下的腳本來測試其在列表中的索引快擷取元件比在字典
1.Fetching元件,或
2.Fetching元件在字典中鍵
import timeit
import random
lis1 = [random.randint(1,10000) for x in xrange(0,10001)]
dict1 = {x:random.randint(1,10000) for x in xrange(0,10001)}
def list_lookup():
index = random.randint(0,10000)
x = lis1[index]
def dict_lookup():
index = random.randint(0,10000)
x = dict1[index]
def main():
print timeit.repeat("list_lookup()", "from __main__ import list_lookup",number=1000000)
print timeit.repeat("dict_lookup()", "from __main__ import dict_lookup",number=1000000)
if __name__ == '__main__':
main()
這是給下面的輸出
[1.208083152770996, 1.1942389011383057, 1.1882140636444092]
[1.2461788654327393, 1.2427518367767334, 1.2414629459381104]
儘管差異似乎可以忽略不計,但它好像字典查找需要稍長的時間
是因爲在字典中提取元素涉及2個步驟 - 首先散列鍵然後提取值(秒),而在列表中,我們只是從該列表的特定位置的存儲器地址獲取值
基本上答案是**是**,但過短是一個答案。 – 2015-03-03 06:05:57