2011-10-28 9 views
4

私はPython初心者で、Eratosthenesの篩のコードを書こうとしています。このために空のセットのリストを初期化する必要があります。私はこれをやってみたfactors=[set()]*1001しかし、これは浅いコピーを生成します。深いコピーが必要なので、factors[i]factors[j]は別のセットを指しています。それを行うための簡単な構文はありますか?Python:別個の、空のセットのリスト

答えて

10
factors = [set() for index in xrange(1001)] 
6

いつもと同じです。

factors = [set() for x in range(1001)] 
+1

お返事ありがとうございました:) – BiGYaN

+0

@BiGYaNこの回答が役に立ちましたら、_right answer_としてマークしていただければ幸いです。 – Kirill

+0

この種の大きな反復空間では、xrange()がrange()より優れています。私はマイケルホフマンの答えを受け入れました。 – BiGYaN

1

これはかなりそれを行うための標準的な方法です。

factors = [set() for x in xrange(1001)] 

それはxrangeの()が発電機であるため、xrange()の代わりrange()を使用することをお勧めします。

関連する問題