Zagadka Pythonowa #2

Zagadka Pythonowa #2

x = 0
y = [True, False][x == 1]
print(y)

Odpowiedź na powyższe to: 'True'

A dlaczego? Po kolei:

x = 0 # przypisanie
x == 1 # porównanie
zwróci nam wartość False. Gdy zastosujemy wartość False jako indeks elementu listy, to otrzymamy element spod zerowego indeksu:

l = ['a', 'b', 'c']
l[0] # 'a'
l[False] # 'a'

Część druga:

l = [True, False]
type(l) # list

Lista powyżej, to zwykła lista z dwoma elementami. Możemy się odwołać do jej elementów jak do każdej innej listy:

l[0] # True
l[1] # False

Co złożone w całość da nam:

x = 0
y = [True, False][x == 1] # równoważne:
y = [True, False][False]
y = [True, False][0]
y = True

0 Komentarze