Проверка, является ли следующий элемент в списке 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
Другие вопросы по тегам