Tôi mới dùng Python và thử nghiệm với danh sách Tôi đang sử dụng Python 3.2.3 (mặc định, ngày 19 tháng 10 năm 2012, 20: 13:42), [GCC 4.6.3] trên linux2Tại sao vòng lặp for với phương thức pop (hoặc del statement) không lặp qua tất cả các phần tử danh sách
đây là samplecode tôi
>>> l=[1,2,3,4,5,6]
>>> for i in l:
... l.pop(0)
... print(l)
...
tôi mong chờ những kết quả sau
1
[2, 3, 4, 5, 6]
2
[3, 4, 5, 6]
3
[4, 5, 6]
4
[5, 6]
5
[6]
6
[]
Thay vào đó tôi nhận được
này1
[2, 3, 4, 5, 6]
2
[3, 4, 5, 6]
3
[4, 5, 6]
Các điểm dừng vòng lặp lặp lại sau 3 lượt. Ai đó có thể giải thích tại sao?
có thể trùng lặp của [Sửa đổi danh sách trong khi lặp lại] (http://stackoverflow.com/questions/1637807/modifying-list-while-iterating) –
@NedBatchelder: Trong khi nguyên nhân gốc là như nhau, câu hỏi là khác nhau đáng kể . Lý do để gọi 'pop' thậm chí không giống nhau (liên kết đang cố gắng bỏ qua, cái này không phải là). – Guvante