马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 熊宝宝要当红军 于 2019-8-20 10:45 编辑
一些点
0, number = b和 number = b[:] 的区别
话不多说,上例子:>>> b = list(range(0,10,2))
>>> b
[0, 2, 4, 6, 8]
>>> number = b
>>> number
[0, 2, 4, 6, 8]
>>> number.remove(4)
>>> number
[0, 2, 6, 8]
>>> b
[0, 2, 6, 8]
可以理解为指针,number和b 都指向同一片内存单元,所以修改number,b的值也会发生变化
>>> b = list(range(0,10,2))
>>> b
[0, 2, 4, 6, 8]
>>> number = b[:]
>>> number
[0, 2, 4, 6, 8]
>>> number.remove(4)
>>> number
[0, 2, 6, 8]
>>> b
[0, 2, 4, 6, 8]
number是列表b的拷贝,与与原列表对应的内存单元不同,所以修改number的值,b的值不会发生变化
1,在进行分片的时候,我们知道分片的开始和结束位置需要进行指定,但其实还有另外一个隐藏的设置:步长
1)步长可以是负数,负数!!!!,这就意味着我们可以改变方向!!!话不多说上例子:>>> list1 = [2, 3, 4, 5, 6, 7, 8, 9]
>>> list1[::-1]
[9, 8, 7, 6, 5, 4, 3, 2]
>>> list1[6:2:-1]
[8, 7, 6, 5]
>>> list1[:2:-1]
[9, 8, 7, 6, 5]
>>> list1[6::-1]
[8, 7, 6, 5, 4, 3, 2]
2)当然步长可以是正数:>>> list1
[2, 3, 4, 5, 6, 7, 8, 9]
>>> list1[::2]
[2, 4, 6, 8]
>>> list1[2:6:2]
[4, 6]
>>> list1[:6:2]
[2, 4, 6]
>>> list1[2::2]
[4, 6, 8]
3)不能数0,不然就走不动了:
>>> list1[::0]
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
list1[::0]
ValueError: slice step cannot be zero
|