这里的range里面的第一个参数为什么是len,不应该是列表的第一个元素的索引0吗(语言-python)

img


for i in range(len(nums) - 1, -1, -1):
for j in range(i - 1, -1, -1):
if nums[i] == nums[j]:
del nums[i]
这里的range里面的第一个参数为什么是len,不应该是列表的第一个元素的索引0吗

range(start, stop[, step])

start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1);

那你这个是自减,从大到小

range(a,b,c)
返回一个从a开始,到b为止(不包含b),间隔c的可迭代对象
如果c是负数,那么就是从大到小的排序
此时a肯定要比b大呀

也可以采用另一种写法,先顺序,再用切片取反

for i in range(len(nums))[::-1]:
    if nums[i] in nums[:i]:
        del nums[i]