... à la recherche d'un équivalent en python de dict.get(key, default)
for lists
Il existe des recettes itertools qui le font pour les itérables généraux. Pour plus de commodité, vous pouvez > pip install more_itertools
et importer cette bibliothèque tierce qui implémente de telles recettes pour vous:
Code
import more_itertools as mit
mit.nth([1, 2, 3], 0)
# 1
mit.nth([], 0, 5)
# 5
Détail
Voici la mise en œuvre de la nth
recette:
def nth(iterable, n, default=None):
"Returns the nth item or a default value"
return next(itertools.islice(iterable, n, None), default)
Comme dict.get()
, cet outil renvoie une valeur par défaut pour les index manquants. Elle s'applique aux itérables généraux:
mit.nth((0, 1, 2), 1) # tuple
# 1
mit.nth(range(3), 1) # range generator (py3)
# 1
mit.nth(iter([0, 1, 2]), 1) # list iterator
# 1