如何设置list步长
示例:range(a, b, step)
1
2
3
|
>>> list ( range ( 0 , 5 , 2 )) [ 0 , 2 , 4 ] |
其中step默认值为1,只能是整数步长,负数表示倒序。
1
2
3
|
>>> list ( range ( 5 , 0 , - 2 )) [ 5 , 3 , 1 ] |
如果想生成小数步长的话,可以使用numpy模块中的arange:
1
2
3
4
|
>>> import numpy as np >>> list (np.arange( 0 , 1 , 0.1 )) [ 0.0 , 0.10000000000000001 , 0.20000000000000001 , 0.30000000000000004 , 0.40000000000000002 , 0.5 , 0.60000000000000009 , 0.70000000000000007 , 0.80000000000000004 , 0.90000000000000002 ] |
numpy默认精度为64位浮点数,可以根据需要一下精度:
1
2
3
4
|
>>> import numpy as np >>> list (np.arange( 0 , 1 , 0.1 ,dtype = 'float32' )) [ 0.0 , 0.1 , 0.2 , 0.30000001 , 0.40000001 , 0.5 , 0.60000002 , 0.69999999 , 0.80000001 , 0.90000004 ] |
还可以通过等分的思想来设置步长,用linspace实现:
1
2
3
4
|
>>> import numpy as np >>> list (np.linspace( 0 , 0.9 , 10 )) [ 0.0 , 0.10000000000000001 , 0.20000000000000001 , 0.30000000000000004 , 0.40000000000000002 , 0.5 , 0.60000000000000009 , 0.70000000000000007 , 0.80000000000000004 , 0.90000000000000002 ] |
python list切片步长
nums[a:b:c]其中的a表示起始的index,b表示最终的index(不包含),c表示一次跨越的步长
这里,顺便补充一下range(a,b,c)的操作与上面是一致的
range在python2中就是一个list,而在python3中需要使用list(range())来转化
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://muzhan.blog.csdn.net/article/details/89011042