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」と言いましたが、よく知られていません。ご協力ありがとうございました! –
問題ありません!私はtry/exceptはPython開発者の周りで非常によく知られていると思う。しかし、 'muggles'についてはわからない! –
これは私の質問の正しい実装のため、答えとしてマークしていますが、@イグナシオ・バスケス - アブラムスの答えは、ハッシュテーブルをチェックするどのような状況でも使用されるべきであることに注意してください。 –