113 votes

Obtention d'une valeur par défaut sur l'index hors plage en Python

a=['123','2',4]
b=a[4] or 'sss'
print b

Je veux obtenir une valeur par défaut lorsque l'index de liste est hors plage (ici : 'sss').

Comment je peux faire ça ?

117voto

Thomas Points 63635

Dans l'esprit python de « demander pardon, pas permission », voici une façon :

try:
    b = a[4]
except IndexError:
    b = 'sss'

86voto

Thomas Points 63635

Dans l'esprit non-Python de « demander la permission, pas le pardon », voici une autre façon :

b = a[4] if len(a) > 4 else 'sss'

22voto

maep Points 257

d'une autre manière :

b = (a[4:]+['sss'])[0]

18voto

gecco Points 4063

Vous pouvez créer votre propre classe de liste :

class MyList(list):
    def get(self, index, default=None):
        return self[index] if len(self) > index else default

Vous pouvez l'utiliser comme ceci :

>>> l = MyList(['a', 'b', 'c'])
>>> l.get(1)
'b'
>>> l.get(9, 'no')
'no'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X