j
là một danh sách trống, nhưng bạn đang cố ghi vào phần tử [0]
trong lần lặp đầu tiên, chưa tồn tại.
Thay vào đó, hãy thử làm như sau, để thêm một yếu tố mới vào cuối danh sách:
for l in i:
j.append(l)
Tất nhiên, bạn sẽ không bao giờ làm điều này trong thực tế nếu tất cả những gì bạn muốn làm là sao chép một danh sách hiện có. Bạn chỉ cần làm:
j = list(i)
Ngoài ra, nếu bạn muốn sử dụng danh sách Python như một mảng trong các ngôn ngữ khác, thì bạn có thể tạo trước một danh sách với các thành phần của nó được đặt thành giá trị null ( None
trong ví dụ bên dưới) và sau đó, ghi đè lên các giá trị ở các vị trí cụ thể:
i = [1, 2, 3, 5, 8, 13]
j = [None] * len(i)
#j == [None, None, None, None, None, None]
k = 0
for l in i:
j[k] = l
k += 1
Điều cần nhận ra là một list
đối tượng sẽ không cho phép bạn gán giá trị cho một chỉ mục không tồn tại.
append
là giải pháp phù hợp cho trường hợp sử dụng của bạn, tuy nhiên có một phương thức chèn vào danh sách python có thể chèn trực tiếp vào vị trí thứ i trong danh sách.j.insert(k, l)