[PYTHON] 빈 목록 부울 값
PYTHON빈 목록 부울 값
이것은 단순히 바보 일지 모르지만 나에게는 약간 혼란 스럽다.
In [697]: l=[]
In [698]: bool(l)
Out[698]: False
In [699]: l == True
Out[699]: False
In [700]: l == False
Out[700]: False
In [701]: False == False
Out[701]: True
왜 l == False가 False를 반환하는 반면 False == False는 True를 반환합니까?
해결법
-
==============================
1.boolean False의 리터럴 값과 비교하여 확인합니다. 'A'== False와 같은 것은 사실이 아닙니다.
boolean False의 리터럴 값과 비교하여 확인합니다. 'A'== False와 같은 것은 사실이 아닙니다.
당신이 그것을 던지면, 당신은 차이를 볼 수 있습니다 :
>>> l = [] >>> l is True False >>> l is False False >>> l == True False >>> l == False False >>> bool(l) == False True
False == False 인 이유는 동일한 개체를 비교하기 때문입니다. 2 == 2 또는 'A'== 'A'와 같습니다.
어려움은 내가 다음과 같은 것을 볼 때 나온다 : 그리고이 수표는 절대로 통과하지 못한다. 그것은 당신이 아이템의 진실 가치를 체크하고 있기 때문입니다. 관례 상이 모든 항목은 부울 검사에서 실패합니다. 즉 부울 값은 False입니다.
이것을 "거짓"값이라고합니다. 다른 모든 것은 "사실"입니다. 어떤 이상한 일들이 생길 수 있습니다 :
>>> def foo(): ... pass ... >>> bool(foo) True
명시 적 값을 반환하지 않는 메서드는 항상 반환 형식으로 None을 가지므로 다음과 같이됩니다.
>>> def bar(): ... x = 1+1 ... >>> bool(bar) True >>> bool(bar()) False
-
==============================
2.빈 목록은 False와 같지 않지만 같은 개체이기 때문에 False는 False와 같습니다. 빈 목록은 "거짓"이므로 bool (l)은 False를 반환합니다.
빈 목록은 False와 같지 않지만 같은 개체이기 때문에 False는 False와 같습니다. 빈 목록은 "거짓"이므로 bool (l)은 False를 반환합니다.
즉, ==는 bool () == bool ()이 아닙니다.
예를 들어 [1, 2] == [1, 2, 3]은 두 개가 "참"인 경우에도 False입니다.
-
==============================
3.빈 목록이 False가 아니거나 bool로 변환 될 때 또는 if 또는 while 조건 (둘 다 조건의 bool 변환을 평가하는 경우)에 의해 평가 될 때 "거짓"입니다. 자세한 내용은 진리 값 테스트에 대한 설명서를 참조하십시오.
빈 목록이 False가 아니거나 bool로 변환 될 때 또는 if 또는 while 조건 (둘 다 조건의 bool 변환을 평가하는 경우)에 의해 평가 될 때 "거짓"입니다. 자세한 내용은 진리 값 테스트에 대한 설명서를 참조하십시오.
from https://stackoverflow.com/questions/12997305/empty-list-boolean-value by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 argparse - 선택적 인수이거나 아니면 둘 다 아니다. (0) | 2018.11.22 |
---|---|
[PYTHON] 파이썬 루프없이 단조로운 배열 만들기 (0) | 2018.11.21 |
[PYTHON] 파이썬에서 현재 URL 얻기 (0) | 2018.11.21 |
[PYTHON] 파이썬 원시 문자열과 후행 백 슬래시 (0) | 2018.11.21 |
[PYTHON] AWS lambda의 팬더가 수적 오류를줍니다. (0) | 2018.11.21 |