Почему в списке нет безопасного метода get, такого как словарь?
>>> d = {'a':'b'}
>>> d['a']
'b'
>>> d['c']
KeyError: 'c'
>>> d.get('c', 'fail')
'fail'
>>> l = [1]
>>> l[10]
IndexError: list index out of range
l[10:11]
этого попросите срез: вместо l[10]
, например. () У подсписка будет нужный элемент, если он существует)
.get
. Это было бы эквивалентом l[i] if i < len(l) else default
, но более читабельным, более кратким и позволяющим i
быть выражением без необходимости пересчитывать его
None
если он не существует. Было бы неплохо сказать, x = expensive().get(0, None)
чтобы мне не пришлось помещать бесполезный возврат дорогого во временную переменную.