Có thể không có vòng lặp khởi tạo tất cả các giá trị danh sách cho một số bool không? Ví dụ tôi muốn có một danh sách các phần tử N tất cả là False.Khởi tạo danh sách với cùng giá trị bool
27
A
Trả lời
75
Bạn có thể làm điều đó như thế này: -
>>> [False] * 10
[False, False, False, False, False, False, False, False, False, False]
LƯU Ý: - Lưu ý rằng, bạn không bao giờ nên làm điều này với một list
của mutable types
với cùng một giá trị, nếu không bạn sẽ nhìn thấy hành vi đáng ngạc nhiên như một ví dụ bên dưới: -
>>> my_list = [[10]] * 3
>>> my_list
[[10], [10], [10]]
>>> my_list[0][0] = 5
>>> my_list
[[5], [5], [5]]
Như bạn có thể thấy, những thay đổi bạn đã thực hiện trong một danh sách bên trong, được phản ánh trong tất cả chúng.
9
my_list = [False for i in range(n)]
Điều này sẽ cho phép bạn thay đổi các yếu tố riêng lẻ vì nó xây dựng từng phần tử một cách độc lập.
Mặc dù, kỹ thuật này là một vòng lặp.
3
Khi không gian quan trọng, bytearray
là lựa chọn tốt hơn. Đó là khoảng năm lần không gian hiệu quả hơn so với danh sách các giải pháp boolean.
Điều này tạo ra một loạt các N
giá trị, khởi tạo zero:
B = bytearray(N)
Các vấn đề liên quan
- 1. Giá trị mặc định trong danh sách khởi tạo C++
- 2. giá trị bool của danh sách trong Python
- 3. Danh sách khởi tạo Constructor với khởi tạo rỗng
- 4. Tự động khởi tạo danh sách C#
- 5. C# Khởi tạo mảng - với giá trị không mặc định
- 6. Khởi tạo danh sách inline
- 7. Danh sách khởi tạo hàm tạo dài
- 8. Khởi tạo std :: tuple từ danh sách khởi tạo
- 9. Python: khởi tạo danh sách đa chiều
- 10. Cách khởi tạo danh sách bằng hàm tạo?
- 11. Khởi tạo giá trị Scala
- 12. khởi tạo tham chiếu trong danh sách khởi tạo
- 13. Tổng giá trị bool trong C/C++
- 14. Tạo danh sách các giá trị từ getters của Danh sách đối tượng
- 15. Di chuyển hàm tạo và danh sách khởi tạo
- 16. Danh sách khởi tạo trong hàm dựng
- 17. danh sách khởi tạo trong Clang
- 18. Danh sách phổ biến <string> có cùng giá trị với LINQ
- 19. Python Bool và so sánh int và lập chỉ mục trong danh sách với các giá trị boolean
- 20. bộ lọc django với danh sách các giá trị
- 21. Inline danh sách khởi tạo trong VB.NET
- 22. "Khởi tạo" một Danh sách bằng Java?
- 23. Tại sao tôi không thể khởi tạo std :: vector với danh sách khởi tạo
- 24. MySQL Truy vấn Danh sách Giá trị
- 25. Khởi tạo kiểu dữ liệu đại số từ danh sách
- 26. khởi tạo các thành viên của một danh sách
- 27. danh sách liên kết để danh sách thả xuống, phải làm gì với giá trị?
- 28. Khởi tạo một mảng với một giá trị đơn
- 29. Khởi tạo toàn bộ mảng 2D với một giá trị
- 30. bean mùa xuân với giá trị hàm khởi tạo động
này là hoàn toàn thành ngữ chính xác cho vấn đề này. Tuy nhiên, nó hoàn toàn là thành ngữ không chính xác để sử dụng khi bạn đang xử lý một loại có thể thay đổi: '[[]] * 10' có một số hậu quả đáng ngạc nhiên cho những người mới :). – mgilson