się dowiedzieć, czy lista jest puste, testując "prawdę":
>>> bool([])
False
>>> bool([0])
True
W drugim przypadku 0
jest fałszywe, ale lista [0]
ma wartość True, ponieważ zawiera coś. (Jeśli chcesz sprawdzić listę dla zawierający wszystkie falsey rzeczy, użyj all lub any: any(e for e in li)
jest Prawda, jeśli każdy element w li
jest truthy.)
Skutkuje to tym idiomu:
if li:
# li has something in it
else:
# optional else -- li does not have something
if not li:
# react to li being empty
# optional else...
Według PEP 8, to jest właściwy sposób:
• For sequences, (strings, lists, tuples), use the fact that empty sequences are false.
Yes: if not seq:
if seq:
No: if len(seq)
if not len(seq)
przetestować, czy lista ma specyficzny indeks istniejący przy użyciu try
:
>>> try:
... li[3]=6
... except IndexError:
... print 'no bueno'
...
no bueno
Więc może chcesz odwrócić kolejność kodu do tego:
if list3:
print list3
else:
print "No matches found"
Co z 'not'? – halex
Jest to zadanie szkolne i nie powinienem teraz o tym wiedzieć. Wiem o tym tylko dlatego, że wcześniej szukałem odpowiedzi. – user2240288
możliwy duplikat [Najlepszy sposób sprawdzenia, czy lista jest pusta] (http://stackoverflow.com/questions/53513/best-way-to-check-if-a-list-is-empty) –