python 字典如何判斷指定的 key 是否存在的幾種方式及性能對比


在 python 中,判斷字典中指定的 key 是否存在有三種方式,if key in dctif key in dct.keys() 和 if dct.has_key(key),其中 key in dct 形式效率最快,推薦使用。

key in dct(推薦方式)

dct = {'knowledge': 18, "dict": 8} if 'knowledge' in dct: print(dct['knowledge'])

key in dct.keys()

if 'knowledge' in dct.keys(): print(dct['knowledge'])

dct.has_key(key)(python 2.2 及以前)

python 2.2 及之前的版本,字典提供了查詢指定 key 是否存在的函數 has_key,但在 python 3 已經刪除。

if dct.has_key('knowledge'): print(dct['knowledge'])

三種方式的效率對比

import time
from matplotlib import pyplot as plt

n = 10000
time1 = []
time2 = []
time3 = []
for n in range(100,10100,100):
    my_dict = {}
    for i in range(n):
        my_dict[i] = i

    start = time.time() for i in range(n): if i in my_dict.keys(): pass end = time.time() print end - start time1.append(end - start) start = time.time() for i in range(n): if my_dict.has_key(i): pass end = time.time() print end - start time2.append(end - start) start = time.time() for i in range(n): if i in my_dict: pass end = time.time() print end - start time3.append(end - start) t = range(100,10100,100) plt.plot(t, time1, label='in keys()') plt.plot(t, time2, label='has_key') plt.plot(t, time3, label='in') plt.legend() plt.show()

 轉:https://www.knowledgedict.com/tutorial/python-check-key-exist-in-dict.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM