for 루프를 사용하여 Python에서 목록을 탐색할 때 사용자는 목록 이해를 사용하지 않고 해당 요소를 변경할 수 없는 예상치 못한 상황에 직면할 수 있습니다.
문제의 핵심 for i in li 루프 구성의 동작에 있습니다. 내부적으로는 다음과 같이 반복됩니다.
for idx in range(len(li)): i = li[idx] i = 'foo'
보다시피 i에는 처음에 목록의 요소에 대한 참조가 할당됩니다. i에 대한 후속 수정은 목록 항목 자체가 아닌 지역 변수에만 영향을 미칩니다.
이 문제를 해결하려면 다음 중 하나의 목록 이해 기능을 활용할 수 있습니다.
li = ["foo" for i in li]
또는 명시적으로 인덱스를 순회합니다.
for idx in range(len(li)): li[idx] = 'foo'
또는, 열거형을 사용하여 프로세스를 단순화할 수 있습니다.
for idx, item in enumerate(li): li[idx] = 'foo'
위 내용은 'for' 루프 내에서 Python 목록을 직접 수정할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!