Không an toàn để sửa đổi trình tự được lặp lại trong vòng lặp (điều này chỉ có thể xảy ra đối với các loại trình tự có thể thay đổi, chẳng hạn như danh sách). Nếu bạn cần phải sửa đổi danh sách mà bạn đang lặp lại (ví dụ, để nhân đôi các mục đã chọn), bạn phải lặp qua một bản sao. Ký hiệu lát làm cho điều này đặc biệt thuận tiện:Tại sao không an toàn để sửa đổi trình tự đang được lặp lại?
>>> for x in a[:]: # make a slice copy of the entire list ... if len(x) > 6: a.insert(0, x) ... >>> a ['defenestrate', 'cat', 'window', 'defenestrate']
tại sao nó không an toàn để chỉ làm for x in a
??
Bạn đã nhận được kết quả gì khi thử? – SilentGhost
Tôi tin rằng bên dưới trả lời câu hỏi của bạn. Nếu bạn không muốn sao chép toàn bộ danh sách, bạn cũng có thể duy trì danh sách các post-ops mà bạn có thể chạy sau khi lặp lại. –