我想通过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答案应该用于检查散列表 –