在 python 中,判断字典中指定的 key 是否存在有三种方式,if key in dct
、if 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