Python3 에서 중복된 문자 제거 (연속된 경우만 제거)
조회수 8525회
ex) [3,5,7,7,3,3,7,3,5] 리스트의 경우
set을 이용하면 {3,5,7}로 결과가 return 되지만
제가 원하는 return값은 [3,5,7,3,7,3,5] 와 같이 똑같은 문자나 숫자가 다음에 오는 경우만 제거하고 싶은 case입니다.
혹시 간단한 함수가 있는지 질문드립니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
제가 아는 라이브러리가 없어서 함수로 짜봤습니다..
def list_overlap_del(input_list): result_list = [] for i in range(len(input_list)): if i == 0: list_temp.append(input_list[i]) elif list_temp[-1] != input_list[i]: list_temp.append(input_list[i]) return result_list
-
(•́ ✖ •̀)
알 수 없는 사용자
-
-
groupby 을 사용해서 간단하게 표현은 가능합니다만 효율적인 방법은 아닐것으로 보이네요.
>>> import itertools >>> L = [3,5,7,7,3,3,7,3,5] >>> G = itertools.groupby(L) >>> [k for k, v in G] [3, 5, 7, 3, 7, 3, 5]
댓글 입력