질문 : Python의 문자열 비교 : is vs. == [duplicate]
내가 작성하고있는 Python 스크립트가 squirrelly 작동하는 것을 발견하고 루프 조건이있는 while line is not ''
무한 루프로 추적했습니다. 디버거에서 실행 해보면 실제로 ''
라인이라는 것이 밝혀졌습니다. 내가 그것을 변경하는 경우에 !=''
보다는 is not ''
, 그것은 벌금을했다.
또한 int 또는 Boolean 값을 비교할 때에도 기본적으로 '=='를 사용하는 것이 일반적으로 더 나은 것으로 간주됩니까? 나는 항상 'is'를 사용하는 것을 좋아했습니다. 미적으로 더 즐겁고 비단뱀 같은 느낌을주기 때문입니다 (이게 제가이 함정에 빠진 방식입니다 ...).하지만 두 가지를 찾는 데 관심이있을 때만 예약 할 수 있는지 궁금합니다. 동일한 ID를 가진 개체.
답변
모든 내장 Python 객체 (문자열, 목록, 사전, 함수 등)의 경우 x가 y이면 x == y도 True입니다.
항상 그런 것은 아닙니다. NaN은 반례입니다. 그러나 일반적 으로 동일성 ( is
)은 같음 ( ==
)을 의미합니다. 그 반대는 사실이 아닙니다. 두 개의 별개 개체가 동일한 값을 가질 수 있습니다.
또한 int 또는 Boolean 값을 비교할 때에도 기본적으로 '=='를 사용하는 것이 일반적으로 더 나은 것으로 간주됩니까?
당신은 사용 ==
값을 비교 때 is
정체성을 비교할 때.
int (또는 일반적으로 불변 유형)를 비교할 때 거의 항상 전자를 원합니다. is
와 비교할 수있는 최적화가 있지만 이에 의존하지 마십시오.
부울 값의 경우 전혀 비교하지 않아야합니다. 대신에:
if x == True:
# do something
쓰다:
if x:
# do something
None
과 비교할 때 == None
is None
이 선호됩니다.
나는 항상 'is'를 사용하는 것을 좋아했습니다. 미적으로 더 즐겁고 비단뱀 같은 느낌을주기 때문입니다 (이게 제가이 함정에 빠진 방식입니다 ...).하지만 두 가지를 찾는 데 관심이있을 때만 예약 할 수 있는지 궁금합니다. 동일한 ID를 가진 개체.
예, 그게 바로 그 목적입니다.
출처 : https://stackoverflow.com/questions/2988017/string-comparison-in-python-is-vs
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python에서 파일 생성 및 수정 날짜 / 시간을 얻는 방법 (0) | 2021.11.24 |
---|---|
파이썬 생성기와 반복기의 차이점 (0) | 2021.11.24 |
Python에서 상대 가져 오기를 수행하는 방법 (0) | 2021.11.23 |
Python의 open ()은 파일이 없으면 파일을 생성해서 쓰는 방법 (0) | 2021.11.23 |
Python 3에서 문자열을 바이트로 변환하는 가장 좋은 방법 (0) | 2021.11.22 |