본문 바로가기
파이썬

파이썬 Python의 for 루프에서 목록 요소를 제거하는 방법은 무엇입니까?

by º기록 2021. 2. 16.
반응형

목록이 있습니다

a = ["a", "b", "c", "d", "e"]

이 목록의 요소를 아래와 같이 for 루프에서 제거하고 싶습니다.

for item in a:
    print item
    a.remove(item)

하지만 작동하지 않습니다. 어떡해?

 

해결 방법

 

for 루프를 사용하여 반복하는 동안 목록에서 요소를 제거 할 수 없습니다.

코드를 다시 작성하는 가장 좋은 방법은 수행하려는 작업에 따라 다릅니다.

예를 들어 코드는 다음과 같습니다.

for item in a:
  print item
a[:] = []

또는 while 루프를 사용할 수 있습니다.

while a:
  print a.pop(0)

조건과 일치하는 항목을 제거하려고합니다. 그런 다음 다음 항목으로 이동합니다.

조건과 일치하지 않는 모든 요소를 ​​두 번째 목록에 복사 할 수 있습니다.

result = []
for item in a:
  if condition is False:
    result.append(item)
a = result


a = filter(lambda item:... , a)

또는

a = [item for item in a if ...]

여기서 ... 는 확인해야하는 조건을 나타냅니다.

 

참조 페이지 https://stackoverflow.com/questions/10665591

 

 

반응형

댓글