복붙노트

[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. ==============================

    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. ==============================

    2.빈 목록은 False와 같지 않지만 같은 개체이기 때문에 False는 False와 같습니다. 빈 목록은 "거짓"이므로 bool (l)은 False를 반환합니다.

    빈 목록은 False와 같지 않지만 같은 개체이기 때문에 False는 False와 같습니다. 빈 목록은 "거짓"이므로 bool (l)은 False를 반환합니다.

    즉, ==는 bool () == bool ()이 아닙니다.

    예를 들어 [1, 2] == [1, 2, 3]은 두 개가 "참"인 경우에도 False입니다.

  3. ==============================

    3.빈 목록이 False가 아니거나 bool로 변환 될 때 또는 if 또는 while 조건 (둘 다 조건의 bool 변환을 평가하는 경우)에 의해 평가 될 때 "거짓"입니다. 자세한 내용은 진리 값 테스트에 대한 설명서를 참조하십시오.

    빈 목록이 False가 아니거나 bool로 변환 될 때 또는 if 또는 while 조건 (둘 다 조건의 bool 변환을 평가하는 경우)에 의해 평가 될 때 "거짓"입니다. 자세한 내용은 진리 값 테스트에 대한 설명서를 참조하십시오.

  4. from https://stackoverflow.com/questions/12997305/empty-list-boolean-value by cc-by-sa and MIT license