"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > for 루프와 반복하면서 파이썬 목록에서 요소를 안전하게 제거하려면 어떻게해야합니까?

for 루프와 반복하면서 파이썬 목록에서 요소를 안전하게 제거하려면 어떻게해야합니까?

2025-03-05에 게시되었습니다
검색:257

How Can I Safely Remove Elements from a Python List While Iterating with a For Loop?

문제를 이해하는

질문에 제공된 코드 예제는이 문제를 설명합니다. A의 항목의 경우 : 인쇄 (항목) a.remove (항목)

이 코드가 실행될 때, 반복 중에 목록에서 요소를 제거하면 목록의 크기가 변경되므로 후속 요소의 인덱스가 무효가되므로 첫 번째 요소가 처리 된 후에 오류가 발생합니다. 반복하는 동안, 몇 가지 대안 적 접근법을 고려할 수 있습니다 :

1. pop method

a = ["a", "b", "c", "d", "e"]
for item in a:
    print(item)
    a.remove(item)
pop () 메소드를 사용하여 반복하는 동안 목록에서 항목을 제거 할 수 있습니다. 이 접근법은 while 루프를 사용하여 목록에서 요소를 반복적으로 제거하는 것이 포함됩니다.

print (a.pop ())

2. 비일 일치 요소 복사

원하는 결과가 특정 조건에 따라 요소를 제거하는 경우 조건과 일치하지 않는 요소를 복사하여 새 목록을 만들 수 있습니다.

result = [] A의 항목의 경우 : 조건이 false 인 경우 : result.Append (항목) a = result

3. 필터/목록 이해

a = ["a", "b", "c", "d", "e"]
for item in a:
    print(item)
    a.remove(item)
필터 및 목록 이해는 조건에 따라 요소를 제거하는 간결한 방법을 제공합니다. 필터 함수는 지정된 조건을 기반으로 목록에서 요소를 필터링하고 List Comprehension은 조건을 충족하는 요소로 새 목록을 만듭니다.

# 필터 a = 필터 (람다 항목 : ..., a) # 목록 이해력 a = [If ...]

결론

a = ["a", "b", "c", "d", "e"]
for item in a:
    print(item)
    a.remove(item)

반복 중에 목록 크기를 수정하는 데 영향을 미치는 것이 필수적입니다. 적절한 대안 접근 방식을 사용하여 개발자는 반복 프로세스의 무결성을 유지하면서 목록에서 요소를 효과적으로 제거 할 수 있습니다.
            
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3