Je sais que je peux faire un essai/except ou if/else et définir un défaut basé sur la clause error ou else, mais je me demandais s'il y avait un seul doublure qui pourrait le faire comme getattr
.getattr pour un index de liste en Python?
0
A
Répondre
5
La bonne: juste def
une fonction d'aide
def my_getitem(container, i, default=None):
try:
return container[i]
except IndexError:
return default
La mauvaise: vous pouvez uniligne la version conditionnelle
item = container[i] if i < len(container) else default
Le laid: ce sont des hacks, ne pas utiliser.
item = (container[i:] + [default])[0]
item, = container[i:i+1] or [default]
item = container[i] if container[i:] else default
item = dict(enumerate(container)).get(i, default)
item = next(iter(container[i:i+1]), default)
une question connexe: http://stackoverflow.com/questions/5125619/why-list-doesnt-have-safe-get-method-like-dictionary – newtover