본문 바로가기

Python

Python: [False] and [True] # falsy values in python # [False] or [True] # bool

728x90
반응형

[False] and [True]의 결과는 무엇일까?

False? True? 

답은 [True]

 

and 연산은 False 또는 False로 간주되는 값이 나올때까지 다음과 비교한다.

False가 나오지 않는다면 마지막 값을 리턴

[False]는 boolean 타입이 아니라 리스트 타입이다. 따라서 False가 아니라 그다음 [True]를 비교한다.

[True] 역시 list이다. 그 뒤에 확인할 요소가 없으므로 [True]를 반환

 

추가적인 예시

print([False] and [True])
print([False] and [False])
print([True] and False and True)
print([True] and [] and False)


# [True]
# [False]
# False
# []

3번째의 경우 중간에 False가 나왔기 때문에 뒷 요소까지 보지 않고 False 반환

4번째의 경우 []는 False로 간주되기 때문에 끝까지 보지 않고 [] 나온 순간에 [] 반환

 

Fasle로 간주되는 값들

None, 0, 0.0, 0j, '', [], (), set(), {}

 

[]는 False로 간주되는 값이다.

반대로 말하면 빈 리스트가 아니면 True로 간주된다.

 

or 연산은 True 또는  True로 간주되는 값이 나올 때까지 진행한다.

따라서 [False] and [True]는 [False]를 반환할 것이다. 확인해보자.

 

print([False] or [True])
print([False] or False)
print([True] or [False])
print(False or [False])
print(False or True)

# [False]
# [False]
# [True]
# [False]
# True

 

 

* 비교 연산 참고

https://taltal-dev-note.tistory.com/295

728x90
반응형