Python: farklı, boş kümeler listesi

Ben bir python newbie ve Eratosthenes elek için kod yazmayı deniyorum. Bunun için boş setlerin bir listesini başlatmalıyım. Bu factor = [set ()] * 1001 yapmayı denedim, ancak bu sığ bir kopya oluşturur. Derin bir kopya istiyorum, böylece faktörleri [i] ve faktörleri [j] farklı kümelere işaret eder. Bunu yapmak için basit bir sözdizimi var mı?

4

3 cevap

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

Her zamanki gibi.

factors = [set() for x in range(1001)]
6
katma
hızlı cevabınız için teşekkür ederim :)
katma yazar BiGYaN, kaynak
xrange (), bu tür büyük yineleme alanı için aralıktan() daha iyidir. Bu yüzden Michael Hoffman'ın cevabını kabul ettim.
katma yazar BiGYaN, kaynak
@BiGYaN bu cevabın faydalı olması durumunda doğru cevap olarak işaretlerseniz iyi olur.
katma yazar Kirill, kaynak
Python 3'te, range() yine en iyi çözümdür
katma yazar Josiah Yoder, kaynak

Bu, bunu yapmanın standart yoludur.

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

xrange() kullanmak daha iyidir /docs.python.org/library/functions.html#range "rel =" nofollow "> range() çünkü xrange() bir jeneratördür.

0
katma