다음 코드가 있습니다:
으아악그러나 내가 얻은 결과는 다음과 같습니다.
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
물론 결과에 20 이하의 숫자는 없기를 바랍니다. 삭제하면서 뭔가 잘못한 것 같습니다.
목록을 반복하면서 수정하고 있습니다. 즉, 처음 루프를 통과할 때 i == 1
,因此1
被从列表中删除。然后for
循环转到列表中的第二项,它不是2
,而是3
!然后将其从列表中删除,然后 for
循环继续执行列表中的第三项,现在是 5。依此类推。也许这样更容易可视化,用 ^ 指向 i
의 값은 다음과 같습니다.
다음은 목록의 초기 상태입니다. 그러면 1
가 제거되고 루프가 목록의 두 번째 항목으로 이동합니다.
잠깐.
목록을 반복하는 동안 목록의 길이를 변경하는 좋은 방법은 없습니다. 당신이 할 수 있는 가장 좋은 일은 다음과 같습니다:
으아악또는 내부 변경의 경우(괄호 안에 있는 것은 슬라이스 할당 전에 암시적으로 튜플로 변환되는 생성기 표현식입니다):
으아악삭제하기 전에 n
에 조치를 취하고 싶다면 시도해 볼 수 있는 한 가지 방법은 다음과 같습니다.
위 내용은 Python에서 목록을 반복하는 동안 목록에서 항목을 제거하면 이상한 결과가 발생합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!