패턴이 반복되는 Python의 목록에서 중복 문자 제거

rwszymczakiii

다음과 같은 데이터를 보내는 직렬 포트를 모니터링하고 있습니다.

['','a','a','a','a','a','a','','b','b','b','b','b','b','b','b',
 '','','c','c','c','c','c','c','','','','d','d','d','d','d','d','d','d',
 '','','e','e','e','e','e','e','','','a','a','a','a','a','a',
 '','','','b','b','b','b','b','b','b','b','b','','','c','c','c','c','c','c',
 '','','','d','d','d','d','d','d','','','e','e','e','e','e','e',
 '','','a','a','a','a','a','a','','b','b','b','b','b','b','b','b',
 '','','c','c','c','c','c','c','','','','d','d','d','d','d','d','d','d',
 '','','e','e','e','e','e','e','','','a','a','a','a','a','a',
 '','','','b','b','b','b','b','b','b','b','b','','','c','c','c','c','c','c',
 '','','','d','d','d','d','d','d','','','e','e','e','e','e','e','','']

이것을 다음과 같이 변환 할 수 있어야합니다.

['a','b','c','d','a','b','c','d','a','b','c','d','a','b','c','d']

그래서 중복과 빈 문자열을 제거하고 패턴이 반복되는 횟수도 유지합니다.

나는 그것을 알아낼 수 없었다. 누군가 도울 수 있습니까?

카야 3

다음은 목록 이해력과 itertools.zip_longest를 사용하는 솔루션입니다 . 빈 문자열이 아닌 경우에만 요소를 유지하고 다음 요소와 동일하지 않습니다. 반복자를 사용하여 목록을 분할하는 비용을 피하기 위해 첫 번째 요소를 건너 뛸 수 있습니다.

from itertools import zip_longest

def remove_consecutive_duplicates(lst):
    ahead = iter(lst)
    next(ahead)
    return [ x for x, y in zip_longest(lst, ahead) if x and x != y ]

용법:

>>> remove_consecutive_duplicates([1, 1, 2, 2, 3, 1, 3, 3, 3, 2])
[1, 2, 3, 1, 3, 2]
>>> remove_consecutive_duplicates(my_list)
['a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd',
 'e', 'a', 'b', 'c', 'd', 'e']

빈 문자열 (예 :)로 구분 된 중복 항목이 없거나 'a', '', 'a'그러한 중복 항목을 제거하고 싶지 않다고 가정합니다. 이 가정이 잘못된 경우 먼저 빈 문자열을 필터링해야합니다.

>>> example = ['a', '', 'a']
>>> remove_consecutive_duplicates([ x for x in example if x ])
['a']

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파이썬 목록에서 반복되는 문자 제거

분류에서Dev

목록에서 반복되는 항목 사이의 모든 인스턴스 제거, Python

분류에서Dev

Python의 목록 목록에서 중복 목록 제거

분류에서Dev

자바의 링크 된 목록에서 중복 제거

분류에서Dev

문자열에서 중복되는 반복 패턴을 줄이면서 후자의 위치에 유지하는 방법은 무엇입니까?

분류에서Dev

문자열에서 10 이상의 중복 번호 제거

분류에서Dev

문자열에서 10 이상의 중복 번호 제거

분류에서Dev

Python, 목록에서 중복 제거

분류에서Dev

Python : 목록에서 중복 제거

분류에서Dev

문자열 목록에서 중복 구성 문자열 제거

분류에서Dev

목록에서 대문자 / 소문자 중복 제거

분류에서Dev

중복 문자열이 없도록 배열에서 항목 제거

분류에서Dev

파이썬의 목록에서 중복 요소 제거

분류에서Dev

C의 문자열에서 중복 항목 정렬 및 제거

분류에서Dev

파이썬의 목록 내에서 중복 된 하위 목록 제거

분류에서Dev

문자열 목록에서 특정 패턴을 제거하는 Python 정규식

분류에서Dev

문자열 [] 목록에서 중복 제거 f #

분류에서Dev

F # 문자열 [] 목록에서 중복 제거

분류에서Dev

반복하는 동안 정렬 된 파이썬 목록의 중복 제거

분류에서Dev

Python : 목록 목록에서 중복 항목 개수 및 제거

분류에서Dev

Linux에서 두 번째로 반복되는 지정된 문자 앞의 데이터를 제거하십시오.

분류에서Dev

lodash를 사용하여 각도 8의 목록에서 중복 문자열 (대소 문자 무시) 제거

분류에서Dev

중복 문자열없이 목록에서 단어가 포함 된 문자열 제거

분류에서Dev

두 개의 사용자 지정 개체를 기반으로 목록에서 중복을 제거하는 방법

분류에서Dev

각 문서의 개체 배열 내부 목록 필드에서 중복 제거

분류에서Dev

문자열에서 반복되는 문자 세트 제거

분류에서Dev

문자열에서 반복되는 인접 문자 제거

분류에서Dev

문자열에서 반복되는 문자 제거

분류에서Dev

문자열에서 반복되는 문자 제거

Related 관련 기사

  1. 1

    파이썬 목록에서 반복되는 문자 제거

  2. 2

    목록에서 반복되는 항목 사이의 모든 인스턴스 제거, Python

  3. 3

    Python의 목록 목록에서 중복 목록 제거

  4. 4

    자바의 링크 된 목록에서 중복 제거

  5. 5

    문자열에서 중복되는 반복 패턴을 줄이면서 후자의 위치에 유지하는 방법은 무엇입니까?

  6. 6

    문자열에서 10 이상의 중복 번호 제거

  7. 7

    문자열에서 10 이상의 중복 번호 제거

  8. 8

    Python, 목록에서 중복 제거

  9. 9

    Python : 목록에서 중복 제거

  10. 10

    문자열 목록에서 중복 구성 문자열 제거

  11. 11

    목록에서 대문자 / 소문자 중복 제거

  12. 12

    중복 문자열이 없도록 배열에서 항목 제거

  13. 13

    파이썬의 목록에서 중복 요소 제거

  14. 14

    C의 문자열에서 중복 항목 정렬 및 제거

  15. 15

    파이썬의 목록 내에서 중복 된 하위 목록 제거

  16. 16

    문자열 목록에서 특정 패턴을 제거하는 Python 정규식

  17. 17

    문자열 [] 목록에서 중복 제거 f #

  18. 18

    F # 문자열 [] 목록에서 중복 제거

  19. 19

    반복하는 동안 정렬 된 파이썬 목록의 중복 제거

  20. 20

    Python : 목록 목록에서 중복 항목 개수 및 제거

  21. 21

    Linux에서 두 번째로 반복되는 지정된 문자 앞의 데이터를 제거하십시오.

  22. 22

    lodash를 사용하여 각도 8의 목록에서 중복 문자열 (대소 문자 무시) 제거

  23. 23

    중복 문자열없이 목록에서 단어가 포함 된 문자열 제거

  24. 24

    두 개의 사용자 지정 개체를 기반으로 목록에서 중복을 제거하는 방법

  25. 25

    각 문서의 개체 배열 내부 목록 필드에서 중복 제거

  26. 26

    문자열에서 반복되는 문자 세트 제거

  27. 27

    문자열에서 반복되는 인접 문자 제거

  28. 28

    문자열에서 반복되는 문자 제거

  29. 29

    문자열에서 반복되는 문자 제거

뜨겁다태그

보관