我想通過python3中的「try/catch」塊檢查O(1)時間字典中存在的元素。當我嘗試這樣做,我得到一個語法錯誤,我不知道爲什麼:Python 3.6.3 KeyError
try a_dict[i]:
print(i)
except KeyError:
a_dict[i] = ... #some item
爲了簡單起見,讓我們說,我有一個檢查陣列中的一個重複的功能,我有這個功能目前正使用的從上面的邏輯:
def hasDuplicate(a):
a_dict = dict()
for i in a:
# logic from above
try a_dict[i]:
print(i)
except KeyError:
a_dict[i] = True
# end of logic from above
return -1
我會從try語句行上得到語法錯誤。
我想避免使用in
,因爲它檢查O(N)時間。除非它在O(1)時間檢查字典?任何幫助或反饋,將不勝感激
那麼我會說「嘗試/除外」,但那不是衆所周知的。感謝您的幫助! –
沒問題!我認爲try/except在python開發人員中非常有名。不知道'麻瓜'雖然! –
我將此標記爲答案,因爲我的問題正確執行,但應該注意的是@Ignacio Vazquez-Abrams答案應該用於檢查散列表 –