然明亮 发表于 2020-9-4 16:03:27

列表的命名

>>> old =
>>> new = old
>>> old =
>>> print(new)

请问一下,这里不应该是对old的列表再进行一个新的命名吗,如果是再取了一个新的列表命名为new,不应该是new = old(0;5)吗

冬雪雪冬 发表于 2020-9-4 16:11:52


>>> old = old指向列表
>>> new = oldnre也指向列表
>>> old = old指向列表
>>> print(new)nrw仍指向列表

怀心抱素 发表于 2020-9-4 16:13:18

old =
new = old
这样并没有创建新的列表,只是给这个列表多加了一个引用。
你可以理解为这个列表是一个箱子。new old 这两个变量,都是贴在箱子外面的便签。方便你认识它。

然明亮 发表于 2020-9-4 16:18:02

那像课程上说的list6 =
list8 = list6
list6.sort =
list8也跟着顺序排序,为什么是这种情况呢

然明亮 发表于 2020-9-4 16:21:39

怀心抱素 发表于 2020-9-4 16:13
这样并没有创建新的列表,只是给这个列表多加了一个引用。
你可以理解为这个列表是一个箱子。new old 这 ...

可是课程上当list8 = list6时
list6.sortlist8也会跟着顺序排列为什么是这种情况啊

然明亮 发表于 2020-9-4 16:22:16

冬雪雪冬 发表于 2020-9-4 16:11
>>> old = old指向列表
>>> new = oldnre也指向列表
>>> ol ...

那像课程上说的list6 =
list8 = list6
list6.sort =
list8也跟着顺序排序,为什么是这种情况呢

怀心抱素 发表于 2020-9-4 16:39:35

然明亮 发表于 2020-9-4 16:21
可是课程上当list8 = list6时
list6.sortlist8也会跟着顺序排列为什么是这种情况啊

刚刚说了是一个箱子外面贴了两个标签,你在没有把标签拿走的时候,通过这两个标签操作的都是同一个箱子。   也因为list.sort()是本地修改。就是在原列表上直接排序,不会生成新的列表。

然明亮 发表于 2020-9-4 16:40:53

怀心抱素 发表于 2020-9-4 16:39
刚刚说了是一个箱子外面贴了两个标签,你在没有把标签拿走的时候,通过这两个标签操作的都是同一个箱子。 ...

明白了 十分感谢你的帮助

怀心抱素 发表于 2020-9-4 16:40:55

list6.sort =
这种写法是错误的。 list.sort()方法的返回值应该是None。不是列表对象。

然明亮 发表于 2020-9-4 16:44:27

怀心抱素 发表于 2020-9-4 16:40
这种写法是错误的。 list.sort()方法的返回值应该是None。不是列表对象。

明白了
页: [1]
查看完整版本: 列表的命名