이 문자열 목록과 일부 접두사가 있습니다. 이러한 접두사로 시작하는 모든 문자열을 목록에서 제거하고 싶습니다. 나는 시도했다 :
prefixes = ('hello', 'bye')
list = ['hi', 'helloyou', 'holla', 'byeyou', 'hellooooo']
for word in list:
list.remove(word.startswith(prexixes)
그래서 내 새 목록은 다음과 같습니다.
list = ['hi', 'holla']
하지만이 오류가 발생합니다.
ValueError: list.remove(x): x not in list
무슨 일이야?
Greg의 솔루션은 확실히 더 Pythonic이지만 원래 코드에서는 아마도 이와 같은 것을 의미했을 것입니다. 복사본을 만들고 ( list[:]
구문을 사용하여 ) 복사본을 반복 하는 것을 관찰하십시오 . 목록을 반복하는 동안 목록을 수정해서는 안되기 때문입니다.
prefixes = ('hello', 'bye')
list = ['hi', 'helloyou', 'holla', 'byeyou', 'hellooooo']
for word in list[:]:
if word.startswith(prefixes):
list.remove(word)
print list
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다