檢查字典中是否已存在給定的鍵
P粉489081732
P粉489081732 2023-10-08 11:38:59
0
2
807

我想在更新鍵的值之前測試字典中是否存在該鍵。 我編寫了以下程式碼:

if 'key1' in dict.keys():
  print "blah"
else:
  print "boo"

我認為這不是完成這項任務的最佳方式。有沒有更好的方法來測試字典中的鍵?

P粉489081732
P粉489081732

全部回覆(2)
P粉674876385

直接使用key in my_dict而不是key in my_dict.keys()

if 'key1' in my_dict:
    print("blah")
else:
    print("boo")

這會更快,因為它使用字典的 O(1) 哈希,而不是執行 O(n )對鍵列表進行線性搜尋。

P粉914731066

in 測試dict# 中是否存在鍵:

d = {"key1": 10, "key2": 23}

if "key1" in d:
    print("this will execute")

if "nonexistent key" in d:
    print("this will not")

使用dict.get() 當鍵不存在時提供預設值:

d = {}

for i in range(100):
    key = i % 10
    d[key] = d.get(key, 0) + 1

要為每個鍵提供預設值,請使用dict.setdefault() 在每個作業上:

d = {}

for i in range(100):
    d[i % 10] = d.setdefault(i % 10, 0) + 1

...或更好,使用 defaultdict# 來自 #collections 模組:

from collections import defaultdict

d = defaultdict(int)

for i in range(100):
    d[i % 10] += 1
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!