(Python)检查一个元素是否与下一个元素相同的函数,在检查最后一个元素时返回IndexError

时间:2020-04-14 14:59:23

标签: python for-loop if-statement enumerate index-error

我正在尝试在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循环是否更好,还是可以使用try和except语句修复它?我都尝试过,但不确定是否使用正确。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

由于您正在使用索引,因此可以使用range()而不是一路走来。我的意思是这样:

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

此外,使用break语句被认为是不好的做法,最好将此语句用作while循环的条件