> 백엔드 개발 > 파이썬 튜토리얼 > 이 Python 유물을 사용하면 오랫동안 물고기를 잡을 수 있습니다!

이 Python 유물을 사용하면 오랫동안 물고기를 잡을 수 있습니다!

WBOY
풀어 주다: 2023-04-11 20:07:22
앞으로
1142명이 탐색했습니다.

이 Python 유물을 사용하면 오랫동안 물고기를 잡을 수 있습니다!

이 제품을 사용한 후 코드 작성 효율성이 향상될 것임을 영광으로 장담합니다!

팸피는 천재입니다

우선 패턴 매칭을 대중화해볼까요?

패턴 매칭은 특정 패턴을 부여하고 이 패턴을 사용하여 시퀀스나 문자열이 이 패턴에 맞는지 확인하는 것입니다. 이 기술은 자연어 처리에 자주 사용됩니다.

Pampy는 Python용 패턴 일치 라이브러리입니다. 이 라이브러리는 우아하고 효율적이며 Python 코더의 기본 개발 스택에 추가할 가치가 있습니다.

공교롭게도 이 프로그램에는 Pampy.js라는 이름의 JavaScript 버전 라이브러리도 있습니다.

관심이 있으시면 소스 코드를 읽고 더 많은 개발 언어에 복사하실 수 있습니다.

이 라이브러리를 설치하는 방법도 진부합니다:

  • pip install pampy

Pampy's fancy show

단일 문자 일치

_를 사용하여 단일 문자 일치:

from pampy import _,match
a=['a',1,'b',2,'c',3,'d',4]
patter = ['a',1,'b',_,'c',3,'d',4]
action=lambda x: f'b is: {x}'
print(match(a,patter,action))
로그인 후 복사

실행 결과는 다음과 같습니다.

  • b는 2

위의 예에서 볼 수 있듯이 실제로 _를 자리 표시자로 사용합니다. 일치 시 이 자리 표시자에 해당하는 요소를 찾으면 됩니다.

사전 일치

다단계 사전의 모든 수준에서 키 또는 값을 일치시킬 수 있습니다.

from pampy import _, match
person = {
 'address': {'province': '湖北', 'city': '武汉', 'district': '东湖高新'},
 'name': '闲欢'
}
patter = {_: {_: '武汉'}}
action = lambda k1, k2: ({'k1': k1, 'k2': k2})
print(match(person, patter, action))
로그인 후 복사

실행 결과는 다음과 같습니다.

  • {'k1': 'address', 'k2': ' city'}

이전 예와 유사하게 여기서는 자리 표시자 _를 사용한 다음 작업에 자리 표시자를 배치하여 결과를 출력합니다.

시작과 끝을 일치시키세요

위의 예에서는 자리 표시자를 사용하여 자리를 차지했지만 자리 표시자는 하나의 문자만 일치시킬 수 있습니다. 다음 예에서는 일치시키기 위해 HEAD와 TAIL 두 키워드를 사용하겠습니다. 시작과 끝은 원하는 만큼 많은 문자와 일치할 수 있습니다.

from pampy import _,match,HEAD,TAIL
a=['a',1,'b',2,'c',3,'d',4]
patter = [HEAD,_,'b',2,'c',3,TAIL]
action=lambda h,m,t: ({'head':h,'middle':m,'tail':t})
print(match(a,patter,action))
로그인 후 복사

위 예제를 실행하면 결과는 다음과 같습니다.

  • {'head': 'a', 'middle': 1, 'tail': ['d ', 4]}

결과를 보면 HEAD는 한 문자, TAIL은 두 문자를 매칭하는 것을 볼 수 있는데, 출력 시 문자가 여러 개인 경우 결과가 배열 형태로 출력됩니다.

요약

Pampy의 예제는 매우 간단하며 누구나 읽고 나면 이해할 수 있습니다. 몇 가지 예를 보면 다음과 같은 느낌이 드십니까? 와, 이런 유물이 있군요!

물론 Pampy에는 패턴 일치 방법이 몇 가지만 있는 것이 아니라 모든 사람이 탐색할 수 있는 방법이 더 많습니다.

위 내용은 이 Python 유물을 사용하면 오랫동안 물고기를 잡을 수 있습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿