(Python) Функция для проверки того, совпадает ли элемент со следующим, возвращает IndexError при проверке последнего элемента - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь создать блок кода в Python, чтобы проверить, совпадает ли элемент числа со следующим элементом. Проблема в том, что когда оператор if проверяет последний элемент, он не может проверить, совпадает ли он со следующим, поскольку следующего элемента нет.

Мой код:

 for i, elem in enumerate(number):
    if elem == number[i + 1]:
        count = count + 1
    else:
        break

new_num = count + elem + index

Возвращает

if elem == number[i + 1]:
IndexError: index out of range

Лучше ли использовать while l oop, или это можно исправить с помощью операторов try и исключением? Я попробовал оба, но не уверен, правильно ли я использовал.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Поскольку вы работаете с индексами, вы можете использовать range () и dont go полностью. Я имею в виду следующее:

for i in enumerate(len(number) - 1):
    if elem == number[i + 1]:
        count = count + 1
    else:
        break

Кроме того, используя утверждение break, которое считается плохой практикой, лучше использовать это как условие некоторого времени l oop

0 голосов
/ 14 апреля 2020
for i, elem in enumerate(number):
    if i==0:
     continue; # skip the first element
    if elem == number[i - 1]: # is the element same as previous?
        count = count + 1
    else:
        break

new_num = count + elem + index
...