马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
复制代码
|