2010-12-16 7 views
1

たとえば、私は手動で置き換えを指定する必要がある制御コードがあるドキュメントを持っています。私は基本的にコードのリストを印刷するスクリプトを書いています。簡単です。私はメンバーシップマーカーとして辞書キーを使用しています。これは良いアイデアですか?

今、メンバーシップを保存するために辞書のキーを使用しています。コードが存在する場合は、辞書の値を何かに設定してから、その辞書のキーを返します。これは私を少し浪費します。物事をする良い方法はありますか?

答えて

6

代わりにsetを使用してください。

>>> members = set() 
>>> members.add(1) 
>>> 1 in members 
True 
>>> 2 in members 
False 

あなたのコードは、反復可能に格納されている場合は、独自のコードを見つけることなどのような単純なものかもしれません:

>>> set(codes) 
+0

メンバーシップを確認するの複雑さは何ですか? – Alex

+0

@Alex:辞書は、最初にハッシュチェックを使用し、次に等価テストを使用します。衝突がほとんどない(通常の)状況では、すべての実用的な目的のためにメンバーシップテストはほぼO(1)です。これは、dictでキーを見つけることと同じです。 –

+1

@Alex:http://wiki.python.org/moin/TimeComplexityを参照してください。平均:O(1)、最悪:O(n)。 – sdolan

関連する問題