비슷한 항목이지만 처음과 마지막 부분을 모두 제거하려는 항목 목록이 있습니다. 예를 들어목록에서 비슷한 항목을 제거하는 파이썬 방법
listIn = [1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1]
- 처음 세 요소 "1, 1, 1"은 유사하므로 중간 "1"을 제거한다.
- 다음 두 개의 0은 수정되지 않습니다.
- 하나 하나입니다. 수정하지 않고 그대로 둡니다.
- 4 개의 제로. 첫 번째와 마지막 사이에있는 항목을 제거하십시오. 결과
:
listOut = [1, 1, 0, 0, 1, 0, 0, 1]
의 C++에서이 일을하는 방법은 매우 분명하다,하지만 파이썬 코딩 스타일에서 매우 다른 보인다. 아니면 유일한 방법입니까? A와 첨가 효율,
from itertools import groupby
listOut = []
for value, group in groupby(listIn):
listOut.append(next(group))
for i in group:
listOut.append(i)
break
또는 : 가치관 그룹
itertools의 긴 수명, 기본적으로 제목에'list'가있는 질문에 대한 해결책입니다. – bgusach
그건 정확히 파이썬과 itertools에서 기대했던 것입니다. 완벽한 솔루션. –