2012-12-07 16 views
6

thể trùng lặp:
Initialize list with same bool valueKhởi tạo một danh sách lớn các phép toán luận bằng Python

Tôi đang cố gắng để tạo ra một máy phát điện số nguyên tố trong python 2.7 và kế hoạch sử dụng một mảng (hoặc danh sách) của boolean mà sẽ chỉ ra cho dù một số cho là thủ.

Hãy nói rằng tôi muốn khởi tạo một danh sách 5000 boolean, thế nào tôi sẽ làm như vậy mà không cần phải tự gõ [ "true", "true" "], vv

Cảm ơn

+1

Xem bài đăng này - http://stackoverflow.com/a/13382804/1679863 –

+1

Kể từ khi là ' "đúng"' một boolean ? –

+0

Đối với một danh sách lớn như vậy, nó có thể là giá trị sử dụng một mảng Numpy - 'np.repeat ([True], 5000)' sử dụng ba đơn vị bộ nhớ ít hơn độ lớn hơn '[True] * 5000'. – lvc

Trả lời

12

Bạn có thể thử này:

[True] * 5000 

Chức năng có thể được nhân bằng Python (như chuỗi lon):

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

Cũng giống như một lưu ý phụ: Điều này hoạt động tốt cho các danh sách các loại nguyên thủy, chẳng hạn như số và boolean, nhưng không cho danh sách các đối tượng (hoặc danh sách danh sách, danh sách hoặc dicts, vv), như trong trường hợp này danh sách sẽ chứa 5000 lần _các ví dụ same_. –

+1

Cảm ơn, những gì tôi đang tìm kiếm – Caw

+0

cảm ơn, có ích –

0

Tôi đang cố gắng tạo một bộ tạo số nguyên tố trong python 2.7 và có kế hoạch sử dụng một mảng (hoặc danh sách) các boolean sẽ cho biết một con số đã cho là số nguyên tố.

Điều này nghe thật lãng phí. Một cách tiếp cận tốt hơn là nên có một set() với chỉ số bạn cần:

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

Vì vậy, bạn đề nghị anh ấy nhập thủ công {2, 3, 5, 7 ...} thay vì [True, True, True ...]. Cách tiếp cận thú vị. – kaspersky

+1

Bởi vì có một downvote tôi phải nói rằng tôi đồng ý một cách chân thành! Khoảng cách giữa 2 số nguyên tố ngày càng trở nên lớn hơn, vì vậy bạn càng có nhiều yếu tố lãng phí 'sai' hơn. – erikbwork

+0

+1 điều này tất nhiên sẽ là một cách tiếp cận tốt hơn. –

Các vấn đề liên quan