Как "безопасно" получить значение по индексу в списке?
_list = [5, 6, 9, 8, 1]
print(_list[6])
Вверху приведен код при исполнении которого будет ошибка - IndexError: list index out of range. Как мне написать код, которые при ошибке выдаст какое-то заранее установленное значение.
dict.get("key", "значения нет") # < Как нибудь так, но только со списком
Или единственный вариант это.
try: ...
except IndexError: ...
Просто странно что у словаря такое есть, а списку не добавили.
Ответы (1 шт):
Автор решения: kristal
→ Ссылка
Так а в чём проблема? Напишите свою функцию и в ней делайте проверку. Пример:
def get_element_list(lst: list, index: int, value=None):
if index > len(lst) - 1:
return value
return lst[index]
_list = [5, 6, 9, 8, 1]
print(get_element_list(_list, 6)) # > None
Если вы не часто выходите за край списка то можно отлавливать ошибку:
def get_element_list(lst: list, index: int, value=None):
try:
return lst[index]
except IndexError:
return value
В идеале создать свой класс наследуясь от листа, где мы реализуем недостающий метод:
class MyList(list):
def get(self, index: int, value=None):
if index > len(self) - 1:
return value
return self[index]
_list = MyList([5, 6, 9, 8, 1])
print(_list.get(6)) # > None