Python 문자열 비교를 위한 다양한 방법

이 짧은 튜토리얼에서는 파이썬의 다양한 문자열 비교 방법을 살펴보겠습니다. 또한 다양한 엣지 케이스, 제한 사항 및 주의 사항을 살펴봅니다.

이 튜토리얼은 Flexiple에서 자주 사용되거나 흥미로운 개념에 대한 짧은 큐레이트 튜토리얼을 작성하기 위한 이니셔티브의 일부입니다.

내용의 테이블


  • Python String Comparison

  • String Comparison Operators
  • "==" and "!="
  • "is" and "not is"

  • Limitations and Caveats

  • 파이썬 문자열 비교



    파이썬 문자열 비교 방법은 문자열을 비교하는 데 사용됩니다. 그러나 Python에는 이를 용이하게 하는 몇 가지 편리한 내장 연산자도 있습니다. 그러나 방법을 살펴보기 전에 해결해야 할 중요한 개념이 있습니다.

    프로그램의 데이터는 객체로 표현되며 객체에는 이러한 3가지 속성이 있습니다. ID(Id) - ID에는 데이터가 저장된 메모리 주소가 포함됩니다. 다음으로 Type은 개체의 데이터 형식이고 Value는 개체가 저장하는 내용입니다.

    Python은 동일한 값을 포함하는 객체 ID를 재사용하여 메모리를 절약합니다. 예: here . 이것은 또한 파이썬 문자열 비교를 더 빠르고 쉽게 만듭니다. 또한 각 연산자는 속성을 사용하여 객체를 비교하므로 이러한 용어를 변경하십시오. 이렇게 하면 파이썬 문자열 비교가 훨씬 빠르고 쉽습니다.

    문자열 비교 연산자



    파이썬에서 문자열을 비교하는 데 사용할 수 있는 다양한 방법 중에서 가장 일반적으로 사용되는 두 가지 방법을 아래에서 설명했습니다.

    참고: 이러한 모든 비교 방법은 부울 true 또는 false 를 반환합니다.

    "==" 및 "!="



    == 및 !=는 파이썬 문자열 비교에 일반적으로 사용되는 관계 연산입니다. 이러한 연산자는 문자열에 있는 모든 요소의 유니코드 값을 비교하고 부울 true 또는 false를 반환합니다.

    유니코드 값은 파이썬에서 문자열을 저장하는 방법입니다. 문자열의 각 요소에는 유니코드가 제공되며 이는 프로그래머가 사용하는 언어에 관계없이 요소를 균일하게 유지하는 데 도움이 됩니다. 이에 대해 자세히 알아볼 수 있습니다here.

    따라서 이러한 관계 연산자는 유니코드 값을 기반으로 문자열을 비교합니다.

    "=="사용

    "=="는 두 피연산자의 값이 동일한지 확인하는 파이썬 문자열 비교 방법입니다. 이 연산자는 파이썬에서 동등성을 확인하기 위해 가장 일반적으로 사용되는 방법입니다.

    s1 = 'flexiple!'
    print(id(s1))
    #Output = 2621679855024
    s2 = 'flexiple!'
    print(id(s2))
    #Output = 2621679855024
    s3 = 'flexiple'
    print(id(31))
    #Output = 140735453670112
    
    print(s1==s2)
    #output = True
    print(s2==s3)
    #output = False
    


    연산자는 각각 TrueFalse를 반환합니다. 또한 s1과 s2의 Id가 어떻게 동일한지 확인하십시오.

    그러나 Id 함수는 컴파일러에 따라 다른 숫자를 반환한다는 점에 유의하십시오.

    "!="를 사용하여
    !=는 피연산자의 값이 같지 않은지 확인하는 또 다른 파이썬 문자열 비교 연산자입니다. == 연산자의 반대를 수행합니다. 아래 코드 스니펫은 동일한 구현입니다.

    s1 = 'flexiple!'
    
    s2 = 'flexiple!'
    
    s3 = 'flexiple'
    
    print(s1!=s2)
    #Output = False
    print(s2!=s3)
    #Output = True
    


    "이다"와 "없다"


    isnot is 연산자는 각각 ==!=와 매우 유사합니다. 그러나 관계 연산자와 달리 isis not는 개체의 ID(id)를 비교하고 동일한 ID를 공유하는 경우 true를 반환합니다.

    객체의 ID가 동일하게 유지된다고 주장할 수 있지만 불변으로 작업할 때는 그렇지 않습니다. 객체에 다른 값이 주어지면 메모리는 새로운 ID를 부여하는 변경 사항을 할당합니다.

    이것은 비교를 위해 isis not 연산자를 사용할 때 염두에 두어야 할 사항입니다.

    "is"사용:

    s1 = 'flexiple!'
    
    s2 = 'flexiple!'
    
    s3 = 'flexiple'
    
    print(s1 is s2)
    #output = True
    print(s2 is s3)
    #output = False
    


    "is not"사용:

    s1 = 'flexiple!'
    
    s2 = 'flexiple!'
    
    s3 = 'flexiple'
    
    print(s1 is not s2)
    #output = False
    print(s2 is not s3)
    #output = True
    


    이제 값이 변경될 때 Identity(id)가 어떻게 변경되는지 살펴보겠습니다.

    s1 = 'flexiple!'
    print(id(s1))
    #Output = 2621679855024
    s2 = 'flexiple!'
    print(id(s2))
    #Output = 2621679855024
    
    #Now let us update s1
    s1 = 'flexi'
    print(id(s1))
    #Output - 2621680032944
    


    s1의 값이 변경되면 s2는 즉시 s1에 대한 참조를 중지하고 새 ID가 부여됩니다.

    제한 사항 및 주의 사항


  • Python 문자열 비교 연산자는 유사한 유형의 객체를 비교하는 데만 사용할 수 있습니다.
  • 가장 좋은 방법은 불변
  • 으로 작업할 때 ==를 사용하는 것입니다.

    좋은 웹페이지 즐겨찾기