Đối với các kiểu dữ liệu bất biến:
l = [0] * 100
# [0, 0, 0, 0, 0, ...]
l = ['foo'] * 100
# ['foo', 'foo', 'foo', 'foo', ...]
Đối với các giá trị được lưu trữ bằng cách tham khảo và bạn có thể muốn thay đổi sau đó (như tiểu danh sách hoặc dicts):
l = [{} for x in range(100)]
(Lý do tại sao phương pháp đầu tiên chỉ là ý tưởng tốt cho các giá trị không đổi, e ints hoặc strings, là bởi vì chỉ có một bản sao nông là khi sử dụng cú pháp <list>*<number>
, và do đó nếu bạn đã làm một cái gì đó như [{}]*100
, bạn sẽ kết thúc với 100 tham chiếu đến cùng một từ điển - vì vậy thay đổi một trong số họ sẽ thay đổi tất cả . Vì ints và strings không thay đổi nên đây không phải là vấn đề đối với chúng.)
Nếu bạn muốn thêm vào danh sách hiện có, bạn có thể sử dụng phương pháp extend()
của danh sách đó (kết hợp với danh sách những điều cần thêm thông qua các kỹ thuật trên):
a = [1,2,3]
b = [4,5,6]
a.extend(b)
# a is now [1,2,3,4,5,6]
Đã kết thúc bằng 'l.extend ([x] * 100)' vì nó phù hợp với tình huống của tôi nhất. Amber nhận được câu trả lời tín dụng cho là toàn diện nhất. Cảm ơn! – Toji
Đảm bảo bạn hiểu ngữ nghĩa tham chiếu của Python trước khi sử dụng cho bất kỳ điều gì không tầm thường. Các x được nối vào l là tất cả cùng một x, do đó, đột biến một trong số họ ảnh hưởng đến tất cả chúng (tất cả một trong số họ, được gọi là 100 lần). –
Để làm rõ: Tôi đang sử dụng nó cho số nguyên, vì vậy việc sử dụng của tôi là an toàn. – Toji