... auf der Suche nach einem Äquivalent in Python dict.get(key, default)
für Listen
Es gibt ein itertools-Rezept , das dies für allgemeine iterables tut. Der Einfachheit halber können Sie> pip install more_itertools
diese Drittanbieter-Bibliothek importieren, die solche Rezepte für Sie implementiert:
Code
import more_itertools as mit
mit.nth([1, 2, 3], 0)
# 1
mit.nth([], 0, 5)
# 5
Detail
Hier ist die Umsetzung des nth
Rezepts:
def nth(iterable, n, default=None):
"Returns the nth item or a default value"
return next(itertools.islice(iterable, n, None), default)
Mögen dict.get()
, gibt dieses Tool eine Standard für fehlende Indizes. Es gilt für allgemeine iterables:
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