Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python - 목록의 연속 문자열 그룹화

<시간/>

리스트에 존재하는 문자열의 연속적인 요소를 그룹화해야 할 때 'groupby'와 'yield'를 사용하는 메소드를 정의합니다.

예시

아래는 동일한 데모입니다.

 itertools에서 import groupbydef string_check(elem):return isinstance(elem, str)def group_string(my_list):key, groupby의 grp(my_list, key=string_check):if key:yield list(grp) else:yield from grpmy_list =[52, 11, 'py', 'th', 'on', 11, 52, 'i', 's', 18, 'f', 'un', 99]print("목록은 :")print(my_list)my_result =[*group_string(my_list)]print("결과는 다음과 같습니다.")print(my_result)

출력

목록은 [52, 11, 'py', 'th', 'on', 11, 52, 'i', 's', 18, 'f', 'un', 99]결과입니다. is:[52, 11, ['파이', '일', '켜기'], 11, 52, ['나', 's'], 18, ['에프', '운'], 99] 

설명

  • 목록을 매개변수로 받아 특정 인스턴스 유형에 속하는지 확인하는 'string_check'라는 메서드가 정의되어 있습니다.

  • list를 매개변수로 사용하고 yield를 사용하여 'groupby' 메서드를 사용하여 출력을 반환하는 'group_string'이라는 또 다른 메서드가 정의되어 있습니다.

  • 메소드 외부에서 목록이 정의되고 콘솔에 표시됩니다.

  • 'group_string'이 호출되고 결과가 변수에 할당됩니다.

  • 이것은 콘솔에 출력으로 표시됩니다.