Comment savoir si une liste est vide sans utiliser la commande not?
Voici ce que j'ai essayé:
if list3[0] == []:
print "No matches found"
else:
print list3
Je suis vraiment un débutant alors excusez-moi si je fais des bêtises.
Dans l'ordre de préférence:
# Good
if not list3:
# Okay
if len(list3) == 0:
# Ugly
if list3 == []:
# Silly
try:
next(iter(list3))
# list has elements
except StopIteration:
# list is empty
Si vous avez à la fois un if et un autre, vous pouvez également réorganiser les étuis:
if list3:
# list has elements
else:
# list is empty
Vous découvrez si une liste est vide en testant la "vérité" de celle-ci:
>>> bool([])
False
>>> bool([0])
True
Alors que dans le deuxième cas, 0
Est faux, mais la liste [0]
Est vraie car elle contient quelque chose. (Si vous voulez tester une liste pour contenir toutes les choses falsey, utilisez tout ou tout : any(e for e in li)
est vrai si un élément dans li
est véridique.)
Il en résulte cet idiome:
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...
Selon PEP 8 , c'est la bonne façon:
• Pour les séquences (chaînes, listes, tuples), utilisez le fait que les séquences vides sont fausses.
Yes: if not seq: if seq: No: if len(seq) if not len(seq)
Vous testez si une liste a un index spécifique existant en utilisant try
:
>>> try:
... li[3]=6
... except IndexError:
... print 'no bueno'
...
no bueno
Donc, vous voudrez peut-être inverser l'ordre de votre code:
if list3:
print list3
else:
print "No matches found"
Vérifiez sa longueur.
l = []
print len(l) == 0