|
发表于 2020-6-30 15:45:06
|
显示全部楼层
本帖最后由 Twilight6 于 2020-6-30 15:48 编辑
下面说的别名 就像人的外号,你这样理解可能更好理解哈~~
>>> a=[5,2,3]
>>> b=a
>>> a=[4,6,7]
>>> b
[5, 2, 3]
这里 a = [5,2,3] 实际上是给列表 [5,2,3] 取了一个别名 a ,来代表这个列表
而你后面重新令 b = a 实际上可以看成 b = [5,2,3] ,此时你还是为列表 [5,2,3] 取了一个别名 b
而你后来重新将a重新赋值也就是 a = [4,6,7] 那么就将原本列表 [5,2,3] 的 a 别名 给了 列表 [4,6,7] 导致 原本列表没有了 [5,2,3]的别名
而 b 还是属于列表 [5,2,3]的别名 所以 a 的重新赋值 并不会影响 b
Python 中列表的绝大多数方法是在列表本身上进行改变的
比如 sort()、append()、extend()、remove()、reverse()等,是在列表本身进行改变噢!
所以我们来看看代码:
>>> a=[5,2,3]
>>> b=a
>>> a.sort()
>>> b
[2, 3, 5]
同上这里的 列表 [5,2,3] 被取了俩个别名 a 、b
而且源头都是指向列表 [5,2,3] 的 , 所以只要其中一个的元素发生改变,那么另外一个也会发生改变,因为 a 、 b 指的都是同一个列表
所以使用sort 排序,会在整个列表上进行改变,所以与这个列表有关的也全部随之改变
|
|