【发布时间】:2017-10-10 02:28:21
【问题描述】:
我想用 python3 中的“try/catch”块在 O(1) 时间内检查字典中是否存在元素。当我尝试这样做时,我得到一个语法错误,我不知道为什么:
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) 时间内检查字典?任何帮助或反馈将不胜感激
【问题讨论】:
标签: python-3.6