python中range函数与列表中删除元素

一、range函数使用

  range(1,5)   代表从1到4(不包含5),结果为:1,2,3,4   ,默认步长为1  

  range(1,5,2)   结果为:1, 3  (同样不包含5) ,步长为2

  range(5,-1,-1)  反向输出,结果为:5,4,3,2,1,0 ,此时步长为-1,相当于每次减去1

二、list列表删除元素注意事项

  for i in range(0,len(array)-1):

    if array[i]==array[i+1]:

      del array[i+1]

     分析:该方法进行删除的时候,每次删除的时候元素就少一个,但是一开始的range(0,len(array)-1)还是按最开始的元素长度去遍历,最终会报出列表越界的错误。

  正确方法如下  

  for i in range(len(array)-1,0,-1):

    if array[i]==array[i-1]:

      del array[i-1]

  倒序删除与正序删除的不同示意图如下

 总结:列表元素删除时,是索引大的元素向前靠,所以对于后面的索引元素没有任何影响,而倒序索引正是从大到小索引,所以删除当前的元素,对于后面小的未遍历的索引没有任何影响。

原文地址:https://www.cnblogs.com/gczr/p/6445985.html