Проверка, является ли следующий элемент в списке Python пустым
Итак, что я пытаюсь сделать, это проверить, является ли элемент пустым, используя счетчик + 1, но я продолжаю получать индекс вне диапазона, что по существу означает, что следующий элемент не существует, но вместо того, чтобы вызвать исключение, я хочу, чтобы программа возвратила логическое для моего заявления if это возможно..? По сути, я хочу заглянуть к следующему элементу кортежа в словаре и посмотреть, не пуст ли он.
>>> counter = 1
>>> list = 1,2,3,4
>>> print list
>>> (1, 23, 34, 46)
>>> >>> list[counter]
23
>>> list[counter + 1]
34
>>> list[counter + 2]
46
>>> if list[counter + 3]:
... print hello
... else:
... print bye
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
3 ответа
Вы можете использовать try/catch, чтобы поймать ошибку, если вы индексируете недоступный индекс списка
И главное - это плохая практика называть переменную ключевыми словами, т.е. списком, множеством и т. Д.
try:
if list[counter + 3]:
print "yes"
except IndexError:
print 'bye'
Ты можешь использовать len
проверить, находитесь ли вы в пределах диапазона.
Например:
>>> l = 1,2,3,4
>>> len(l)
4
Кроме того, кортеж не является списком. Обычно считается плохой практикой называть вещи list
или же array
и т.п.
Самый простой способ проверить наличие индекса в кортеже или списке - сравнить данный индекс с его длиной.
if index + 1 > len(my_list):
print "Index is to big"
else:
print "Index is present"
Код Python 3 без исключений:
my_list = [1, 2, 3]
print(f"Lenght of list: {len(my_list)}")
for index, item in enumerate(my_list):
print(f"We are on element: {index}")
next_index = index + 1
if next_index > len(my_list) - 1:
print(f"Next index ({next_index}) doesn't exists")
else:
print(f"Next index exists: {next_index}")
Печатает это:
>>> Lenght of list: 3
>>> We are on element: 0
>>> Next index exists: 1
>>> We are on element: 1
>>> Next index exists: 2
>>> We are on element: 2
>>> Next index (3) doesn't exists