파이썬 list remove 시 ValueError: list.remove(x): x not in list
조회수 687회
car = ['BMW', 'BENZ', 'VOLKSWAGEN', 'AUDI','BMW','BMW', 'BENZ', 'VOLKSWAGEN', 'AUDI','BMW','BMW']
for i in car:
car.remove('BMW')
value error 라고 뜨는데 왜 그런걸까요? for 문 사용해서 BMW만 지워야 하는데 어떻게 하나요?
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
remove 명령을 리스트에 사용할 때는 for문을 사용할 필요가 없습니다. for 문을 사용하고 싶다면 다음과 같이 사용해야합니다.
car = ['BMW', 'BENZ', 'VOLKSWAGEN', 'AUDI','BMW','BMW', 'BENZ', 'VOLKSWAGEN', 'AUDI','BMW','BMW'] for i in car: if i == 'BMW': car.remove(i)
-
초보님 답변은 완전하게 제거가 안 될 수 있습니다.
>>> car ['BMW', 'BMW', 'BMW', 'BMW', 'BMW', 'BMW', 'BMW'] >>> for i in car: if i == "BMW": car.remove(i) >>> car ['BMW', 'BMW', 'BMW']
대신 이렇게 해 볼 수 있고요.
>>> for _ in range(car.count("BMW")): car.remove()
list comprehension 으로 해본다면 이렇게.
car = [ e if e != "BMW" for e in car ]
댓글 입력