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

목록에서 유사한 하위 문자열을 그룹화하는 Python

<시간/>

이 자습서에서는 목록에서 유사한 부분 문자열을 그룹화하는 프로그램을 작성할 것입니다. 좀 더 명확하게 이해하기 위해 예를 들어보겠습니다.

입력

문자열 =['튜토리얼-파이썬', '자습서-c', '자습서-자바', '자습서-자바스크립트', '파이썬-1', '파이썬-2', '자바스크립트-1'] 

출력

[['자습서-파이썬', '자습서-c', '자습서-자바', '자습서-자바스크립트'], ['파이썬-1', '파이썬-2'],['자바스크립트-1' ]]

우리는 그룹비를 사용할 것입니다. itertools의 메소드 문제를 해결하는 모듈입니다. 그룹비 메소드는 모든 유사한 문자열을 iter 객체로 그룹화합니다. 주어진 목록에 대해 문자열을 -로 분할하고 문자열의 첫 번째 부분을 groupby에 전달합니다. 방법.

이 문제를 해결하기 위한 단계를 살펴보겠습니다.

  • 문자열 목록을 초기화합니다.
  • itertools 모듈을 가져옵니다.
  • 빈 목록을 초기화합니다.
  • 이제 문자열과 람다 함수를 itertools.groupby에 전달합니다. 방법.
  • 람다 함수는 -
  • 로 분할한 후 문자열의 첫 번째 부분을 반환해야 합니다.
  • 그룹비 메소드는 요소 및 해당 그룹과 함께 튜플 목록을 반환합니다.
  • 반복할 때마다 유사한 요소 그룹을 목록으로 변환합니다.
  • 빈 목록에 목록을 추가합니다.
  • 결과를 인쇄합니다.

예시

# itertools 모듈 가져오기 import itertools# 문자열 초기화 =['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript', 'python-1', 'python-2' , 'javascript-1']# empty listresult =[]# iterator# 람다 함수는 stringiterator에서 첫 번째 부분을 반환합니다. =itertools.groupby(strings, lambda string:string.split('-')[0])# iterating over result# 요소와 해당 groupfor 요소, iterator의 group:# 그룹을 목록으로 변환하여 추가 result.append(list(group))# 결과 인쇄 printprint(result)

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

[['자습서-파이썬', '자습서-c', '자습서-자바', '자습서-자바스크립트'], ython-1', '파이썬-2'], ['자바스크립트-1']] 

결론

튜토리얼에서 의문점이 있으면 댓글 섹션에 언급하세요.