Python 문자열 비교
이 튜 토리 얼 에서 Python 의 문자열 을 비교 하 는 다른 방법 을 볼 수 있 습 니 다.python 문자열 이 실패 할 수도 있 고 황금 규칙 은 항상 문자열 을 정확하게 비교 할 수 있 는 까다 로 운 상황 도 볼 수 있 습 니 다.
Python strings are Immutable.
Python 문자열 은 변경 할 수 없습니다.
This means that once you have created a string then it cannot be modified, if you do modify it then it will create a new python string. Example below will explain the fact.
문자열 을 만 들 면 수정 할 수 없습니다. 수정 하면 새 python 문자열 을 만 듭 니 다.아래 의 예 는 사실 을 설명 할 것 이다.
str1 = 'TheCrazyProgrammer'
str2 = 'TheCrazyProgrammer'
print(id(str1)) # Prints 54154496
print(id(str2)) # Prints 54154496
str1 += '.com'
print(id(str1)) # Prints 54154400
Here when we make change in str1 then the id of the string changes that confirms that a new string object is created. Now one more question remains i.e. why str1 and str2 have the same id ?
여기 서 str1 에서 변경 할 때 문자열 의 ID 가 변경 되 어 새로운 문자열 대상 을 만 들 었 는 지 확인 합 니 다.왜 str 1 과 str 2 가 같은 id 를 가지 고 있 느 냐 는 질문 도 있다.
That is because python do memory optimizations and similar string object are stored as only one object in memory. This is also the case with small python integers.
이것 은 python 이 메모리 최 적 화 를 하고 유사 한 문자열 대상 이 하나의 대상 으로 만 메모리 에 저장 되 기 때문이다.작은 python 정수 도 마찬가지다.
Now getting to string comparison there are two different methods by which we can compare strings as below.
지금부터 문자열 비 교 를 시작 합 니 다. 문자열 을 비교 할 수 있 는 두 가지 방법 이 있 습 니 다. 다음 과 같 습 니 다.
파 이 썬 문자열 비교 (파 이 썬 문자열 비교)
방법 1: is 연산 자 비교 사용 (방법 1: Comparing Using is Operator)
is and is not operator is used to compare two strings as below:
is 와 not 연산 자 는 두 문자열 을 비교 하 는 데 사 용 됩 니 다. 다음 과 같 습 니 다.
str1 = 'TheCrazyProgrammer'
str2 = 'TheCrazyProgrammer'
if str1 is str2 :
print("Strings are equal") # Prints String are equal
else :
print("String are not equal")
The two strings to be compared are written on either side of the is operator and the comparison is made. is operator compares string based on the memory location of the string and not based on the value stored in the string.
비교 할 두 문자열 을 is 연산 자의 어느 쪽 에 쓰 고 비교 합 니 다.is 연산 자 는 문자열 에 저 장 된 값 대신 문자열 의 저장 위치 에 따라 문자열 을 비교 합 니 다.
Similarly to check if the two values are not equal the is not operator is used.
유사 하 게 두 값 이 같 지 않 은 지 확인 하고 is not 연산 자 를 사 용 했 습 니 다.
방법 2: 사용 = = 연산 자 비교 (방법 2: Comparing Using = = Operator)
The == operator is used to compare two strings based on the value stored in the strings. It’s use is similar to is operator.
= = 연산 자 는 문자열 에 저 장 된 값 에 따라 두 문자열 을 비교 하 는 데 사 용 됩 니 다.그것 의 용법 은 is 연산 자 와 유사 하 다.
str1 = 'TheCrazyProgrammer'
str2 = 'TheCrazyProgrammer'
if str1 == str2 :
print("Strings are equal") # Prints String are equal
else :
print("String are not equal")
Similarly to check if the two strings are not equal the != is used.
유사 하 게 두 문자열 이 같은 지 확인 하고 사용! =.
Why the python string being immutable is important?
왜 python 문자열 을 변경 할 수 없 는 것 이 중요 합 니까?
Even the python strings weren’t immutable then a comparison based on the memory location would not be possible and therefore is and is not operator cannot be used.
python 문자열 도 변 하지 않 는 것 이 아니 더 라 도 메모리 위치 에 대한 비교 가 불가능 하기 때문에 사용 할 수 없고 연산 자 를 사용 할 수 없습니다.
Both of the comparison methods above are case sensitive i.e. ‘Cat’ and ‘cat’ are treated differently. Function below can be used to first convert the string in some particular case and then use them.
위의 두 가지 비교 방법 은 모두 대소 문자, 즉 '고양이' 와 '고양이' 의 구별 을 구분한다.아래 함 수 는 특정한 상황 에서 먼저 문자열 을 바 꾼 다음 에 사용 할 수 있 습 니 다.
따라서 먼저 두 문자열 을 비슷 한 대소 문자 로 바 꾼 다음 검 사 를 하면 대소 문자 가 간접 적 으로 민감 하지 않 게 된다.아래 의 예 는 일 을 더욱 명확 하 게 할 것 이다.
str1 = 'TheCrazyProgrammer'
str2 = 'tHecRazyprogrammer'
if str1 == str2 :
print("Strings are equal")
else :
print("String are not equal") # Prints String are not equal
if str1.upper() == str2.upper() :
print("Strings are equal") # Prints String are equal
else :
print("String are not equal")
The golden line to remember whenever using the == and is operator is
= = is 연산 자 를 사용 할 때마다 기억 해 야 할 금 선 은?
== used to compare values and is used to compare identities.
= = 값 을 비교 하고 비교 하 는 신분 에 사용 합 니 다.
One more thing to remember here is:
여기 서 기억 해 야 할 것 은:
if x is y is then x == y is true
만약 x 가 y 라면 x = = y 는 true
It is easily understandable as x and y points to the same memory locations then they must have the same value at that memory location. But the converse is not true. Here is an example to support the same:
이것 은 x 와 y 가 같은 저장 위 치 를 가리 키 기 때문에 이 저장 위치 에서 같은 값 을 가 져 야 한 다 는 것 을 쉽게 이해 할 수 있다.하지만 거꾸로 는 옳지 않다.이것 은 같은 예 시 를 지원 하 는 예제 입 니 다.
a = {"a":1}
c = a.copy()
print(a is c) # Prints False
print(a == c) # Prints True
In this example c is at a new memory location and that’s why a is c prints false.
이 예제 에서 c 는 새로운 메모리 위치 에 있 습 니 다. 이것 이 바로 a 가 c 의 결과 가 false 인 이유 입 니 다.
번역https://www.thecrazyprogrammer.com/2019/11/python-string-comparison.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
비슷한 이름의 Attribute를 많이 만들어 삭제하는 Houdini사용 소프트웨어는 Houdini16.5입니다 배열에서는 애트리뷰트의 보간이 잘 동작하지 않는 것과 AttributeCreateSOP 노드에서 Size가 4를 넘는 애트리뷰트를 작성해도 값이 조작할 수 없어 의미가 없...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.