求助一个列表操作的问题

刚用python不久,遇到一个非常尴尬的问题,有一个list,我想对前值和后值进行对比。试着用循环,然后index+1来获取第二个值,但是会报index溢出?求解

阅读 1.7k
3 个回答

通过len函数计算好数组长度,来避免索引越界
注意: len函数是从 1 开始计数, 而索引是从0开始计数,所以len的值-1就是索引的最大值

def main():
    tmp_list = [1, 2, 23, 4, 7, 9, 22]
    length = len(tmp_list) - 1
    for x in tmp_list:
        current_index = tmp_list.index(x)
        if tmp_list.index(x) == length:
            return
        else:
            print(x, tmp_list[current_index + 1])


if __name__ == '__main__':
    main()

最前面的值,没有前值,最后一个值没有后值,你在比较时,应该排除这两种情况。

list_a = [1, 2, 3, 4, 5, 5, 6]
l = len(list_a)
for i in range(l-1):   # 注意这里是l-1, 这样下面的i+1就不会超出数组方位了
    print("第{}个元素是否等于第{}个元素?".format(i, i+1))
    print(list_a[i] == list_a[i+1])
    
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题