Python学习
前言:
今天在做一道python re时碰到的问题一下子卡住了所以发个博客
起因:
因为python学的有点忘记了今天做题时碰到了range()函数倒序然后用for循环遍历写入一个新的列表一下子卡住了
例子:
arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] a = [] for i in range(len(arr)-2,-1,-1): a.append(arr[i]) print(a)
运行:
[8, 7, 6, 5, 4, 3, 2, 1, 0]
这个例子演示的就是问题描述的内容其中做了一个去除列表第十个数的操作也就是去掉9然后写入新的列表a
得到结果为
[8, 7, 6, 5, 4, 3, 2, 1, 0]
至于为什么卡住,一下子没反应过来len(arr)-2,这个-2实际上是读取列表长度然后减去2不是什么其他的取列表-2什么的233333作用就是从8到0每次取-1直到-1结束
注意:“len(arr)-2,-1,-1 “
问:为什么第二个参数是-1而不是0
答:第二个参数是取不到它本身的因此要向后再加一位
如果把这个参数改成0看看:
例子:
arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] a = [] for i in range(len(arr)-2,0,-1): a.append(arr[i]) print(a)
运行:
[8, 7, 6, 5, 4, 3, 2, 1]
可以看到是取不到0的,只取到了1这里
倒序:
关于倒序就不细讲了,主要是第三个参数-1
这里
每次取-1也就是倒序每次取第一个参数然后配合for循环就可以实现对列表倒序排列。
改成-2就是倒序每次取第二个参数也可以理解成隔两个取第二个参数
总结就是:range()函数倒序排列其中有一点就是去除首位参数写入新的列表