|
本人初学python. 在学习到list的时候有点疑问.
按照手册说明:
- All slice operati** return a new list containing the requested elements. This means that the following slice returns a new (shallow) copy of the list:
- >>> squares = [1, 4, 9, 16, 25]
- >>> backup = squares[:]
- >>> squares
- [1, 4, 9, 16, 25]
- >>> backup
- [1, 4, 9, 16, 25]
- >>> squares is backup
- False
复制代码
好, 这个很简单. 我们有一个 变量 squares, 一个副本 backup. 他们的内存地址是不一样的. 但是请看下面:
- >>> squares
- [1, 4, 9, 16, 25]
- >>> del squares[:]
- >>> squares
- []
- >>>
复制代码
当我进行del 操作的时候, 这个del squares[:]直接操作的是squares本体. 这个需要怎么理解.
当切片操作进行赋值的时候会产生一个副本.
而在直接对这个切片进行操作没有赋值符号的时候, 又是对这个list本体进行变更. 请大佬给我解惑.
|
|