自行发光体 发表于 2020-11-13 22:41:22

小白求助,为什么这样弄list3没有赋值,反而list2改变了

>>> list2 = ['q','w','e','r','t']
>>> list2
['q', 'w', 'e', 'r', 't']
>>> list3 = list2.extend()
>>> list3
>>> list2
['q', 'w', 'e', 'r', 't', 4, 5, 6]
>>>

昨非 发表于 2020-11-13 22:45:18


list3 = list2.extend()
其中:
extend是对list2的操作,而这一操作没有返回值

所以你看到的结果就是,list3依旧为空,list2变化了

Twilight6 发表于 2020-11-13 22:46:44



Python 的列表绝大多数方法是在原列表上进行改变且没有返回值

例如 extend()、append()、remove() 等没有返回值,但是 pop() 函数有返回值哈

当 Python 的函数或者方法没有返回值时候, Python 会默认返回一个None

所以这里list2.extend() 返回的是一个 None ,而 list3 =list2.extend() 即 list3 = None

9799570 发表于 2020-11-13 22:51:12

本帖最后由 9799570 于 2020-11-13 22:53 编辑

list2.extend()!= list2

list2.extend()= none


事实上已经赋值了。。。

>>> l1=
>>> l1=l1.extend ()
>>> l1
>>>

jackz007 发表于 2020-11-13 23:13:08

       列表属于可修改对象,大多数可修改对象的方法都是直接对对象自身进行操作,使对象的内容或状态发生改变,因此,一般都没有返回值。
页: [1]
查看完整版本: 小白求助,为什么这样弄list3没有赋值,反而list2改变了