파이썬 트릭 연산 : 하위 문자열이 포함되어 있는지 확인하는 7 가지 방법

Python 언어에는 Python 애호가들 사이에서 매우 인기있는 고급 기능이 많이 있습니다. 이 사람들의 눈에는 일반 개발자가 이해할 수없는 고급 기능을 작성할 수있는 사람이 주인이자 신입니다.

하지만 팀워크에서 기술을 과시하는 것은 금기 사항이라는 것을 알아야합니다.

왜 그런 말을 해? 내 의견에 대해 이야기하겠습니다.

  1. 코드가 간단하고 논리가 명확할수록 오류가 덜 발생합니다.
  2. 팀워크에서 코드는 사용자가 관리 할뿐만 아니라 코드 논리를 읽고 이해하는 데 드는 비용을 줄이는 것이 도덕적입니다.
  3. 간단한 코드는 가장 기본적인 구문 설탕 만 사용하고 복잡한 고급 기능에는 더 많은 종속성 (예 : 언어 버전)이 있습니다.

이 기사는 " 현 테크놀로지 시리즈 "의 세 번째 콘텐츠 로, 이번 시리즈에서는 제가 본 놀라운 작업을 요약하고 세어 보겠습니다. 여기에서 Python 애호가라면 멋진 코딩 기술을 배울 수 있습니다. 동시에 이러한 내용을 읽으면 다른 사람의 코드를 읽는 데 도움이 될 수 있습니다.

1. 사용 및 사용

in그리고 not inPython에서는 매우 인기있는 키워드이므로 成员运算符.

이 두 멤버 연산자를 사용하여 객체가 다른 객체에 있는지 여부를 직관적이고 명확하게 확인할 수 있습니다. 예는 다음과 같습니다.

>>> "llo" in "hello, python"
True
>>>
>>> "lol" in "hello, python"
False

2. 찾기 방법 사용

문자열 객체의 find 메소드를 사용하여 부분 문자열이 발견되면 문자열에서 지정된 부분 문자열의 위치를 ​​반환 할 수 있습니다. 찾지 못하면 반환합니다. -1

>>> "hello, python".find("llo") != -1
True
>>> "hello, python".find("lol") != -1
False
>>

3. 색인 방법 사용

문자열 객체에는 문자열에서 지정된 하위 문자열이 처음 나타나는 인덱스를 반환 할 수있는 인덱스 메서드가 있습니다. 찾을 수없는 경우 예외가 발생하므로 사용시 캡처에주의해야합니다.

def is_in(full_str, sub_str):
    try:
        full_str.index(sub_str)
        return True
    except ValueError:
        return False

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

4. 계산 방법 사용

지수 곡선으로 국가를 구한다는 아이디어를 사용하여 카운트 방법을 사용하여 판단 할 수도 있습니다.

판정 결과가 0보다 크면 문자열에 하위 문자열이 있음을 의미합니다.

def is_in(full_str, sub_str):
    return full_str.count(sub_str) > 0

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

5. 마법의 방법을 통해

우리가 판단하는 데 사용하는 첫 번째 방법에서 하위 문자열이 아닌 다른 문자에 실제로 사용하는 경우 Python 인터프리터는 객체에 __contains__마법 방법 이 있는지 확인합니다 .

하나가 있으면 실행하고, 그렇지 않으면 Python이 자동으로 전체 시퀀스를 반복하고 필요한 항목을 찾는 한 True를 반환합니다.

예는 다음과 같습니다.

>>> "hello, python".__contains__("llo")
True
>>>
>>> "hello, python".__contains__("lol")
False
>>>

이 사용법은 in을 사용하는 것과 다르지 않지만 누군가가 코드를 이해하기 어렵게 만들기 위해 이렇게 작성한다는 것을 배제하지는 않습니다.

6. 운영자의 도움으로

연산자 모듈은 산술 및 비교 내장 연산을위한 일부 함수를 정의하는 Python의 내장 연산자 함수 인터페이스입니다. 연산자 모듈은 c로 구현되므로 실행 속도가 파이썬 코드보다 빠릅니다.

연산자 contains에는 문자열의 하위 문자열 여부를 쉽게 확인할 수 있는 메서드가 있습니다.

>>> import operator
>>>
>>> operator.contains("hello, python", "llo")
True
>>> operator.contains("hello, python", "lol")
False
>>> 

7. 정규 매칭 사용

검색 기능에 대해 말하자면, 정규 규칙은 확실히 전문적인 도구라고 할 수 있으며 검색 규칙이 얼마나 복잡한 지 만족시킬 수 있습니다.

문자열이 다른 문자열에 있는지 여부를 확인해야하는 경우 규칙 성을 사용하는 것은 과도합니다.

import re

def is_in(full_str, sub_str):
    if re.findall(sub_str, full_str):
        return True
    else:
        return False

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

추천

출처blog.csdn.net/weixin_36338224/article/details/109187689