2012-12-07 14 views
6

Olası Çoğalt:
Initialize list with same bool valuePython boole büyük liste başlatılıyor

Python 2.7 bir asal sayı üreteci yapmaya teşebbüs ve bir dizi kullanmayı planladığınız ediyorum (veya Belirtilen bir sayının öncelikli olup olmadığını belirten boolelerin listesi. Ben kalmadan bunu nasıl

ı 5000 boole listesini başlatmak istediğini varsayalım

, elle yazmanız vb [ ", "doğru" "true"]

Teşekkür

+1

Bu yayını öğrenin - http://stackoverflow.com/a/13382804/1679863 –

+1

' "doğru"' bir boolean Ne zamandan beri ? –

+0

Böyle büyük bir liste için muhtemelen bir Numpy dizisi kullanmanız gerekir - 'np.repeat ([True], 5000)' '[True] * 5000' 'den üç büyüklüklük daha az bellek kullanır. – lvc

cevap

12

Sen deneyebilirsiniz Bu:

[True] * 5000 

Listeleri Python çarpılır edilebilir (kutu dizeleri gibi):

>>> [True] * 3 
[True, True, True] 
>>> "abc" * 3 
'abcabcabc' 
+2

Bir yan not olarak: Bu sayı ve boole gibi ilkel türlerin listesi için iyi çalışır, ancak Bu durumda olduğu gibi, (listeler, listeleri veya dicts vb veya listeler) nesne listelerini listesi 5000 katı _The same_ örneği içerir. –

+1

Teşekkürler, – Caw

+0

için aradığımı teşekkürler, bu kullanışlı –

0

python 2.7'de bir asal sayı üreteci yapmaya çalışıyorum ve belirli bir sayının öncelikli olup olmadığını belirten boole bir dizi (veya liste) kullanmayı planlıyorum.

Bu gerçekten çok israfsız geliyor. Daha iyi bir yaklaşım, sadece sayılarla bir set() sahip olacaktır İhtiyacınız:

>>> primes = {2, 3, 5, 7} 
>>> 4 in primes 
False 
>>> 5 in primes 
True 
+3

geliyor Bu yüzden elle [True, True, True ...] yerine {2, 3, 5, 7 ...} yazmasını önerirsiniz. İlginç bir yaklaşım. – kaspersky

+1

ben heartfully katılıyorum söylemek zorunda bir downvote olmadığı için! 2 primat arasındaki mesafe gittikçe daha büyük hale gelir, bu yüzden büyüdükçe daha fazla savurgan 'false' elementleri alırsınız. – erikbwork

+0

+1 bu elbette daha iyi bir yaklaşım olacaktır. –