Python:別個の空のセットのリスト

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

4

3 答え

factors = [set() for index in xrange(1001)]
10
追加された

いつもと同じ。

factors = [set() for x in range(1001)]
6
追加された
早速のご返事ありがとうございます :)
追加された 著者 BiGYaN,
この種の大きな反復空間では、xrange()はrange()より優れています。私はマイケルホフマンの答えを受け入れました。
追加された 著者 BiGYaN,
@BiGYaNこの答えが役に立つなら、正解としてマークするといいでしょう。
追加された 著者 Kirill,
Python 3ではrange()も最適な解決策です
追加された 著者 Josiah Yoder,

これは標準的なやり方です。

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

It's better to use xrange() instead of range() because xrange() is a generator.

0
追加された