鱼C论坛

 找回密码
 立即注册
查看: 2150|回复: 4

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

[复制链接]
发表于 2020-11-13 22:41:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> list2 = ['q','w','e','r','t']
>>> list2
['q', 'w', 'e', 'r', 't']
>>> list3 = list2.extend([4,5,6])
>>> list3
>>> list2
['q', 'w', 'e', 'r', 't', 4, 5, 6]
>>>
最佳答案
2020-11-13 22:46:44


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

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

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

所以这里  list2.extend([4,5,6]) 返回的是一个 None ,而 list3 =  list2.extend([4,5,6]) 即 list3 = None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-13 22:45:18 | 显示全部楼层
list3 = list2.extend([4,5,6])
其中:
extend是对list2的操作,而这一操作没有返回值

所以你看到的结果就是,list3依旧为空,list2变化了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-13 22:46:44 | 显示全部楼层    本楼为最佳答案   


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

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

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

所以这里  list2.extend([4,5,6]) 返回的是一个 None ,而 list3 =  list2.extend([4,5,6]) 即 list3 = None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-13 22:51:12 | 显示全部楼层
本帖最后由 9799570 于 2020-11-13 22:53 编辑

list2.extend([1,2])  != list2

list2.extend([1,2])  = none


事实上已经赋值了。。。

>>> l1=[1,2,3]
>>> l1=l1.extend ([0,1])
>>> l1
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-13 23:13:08 | 显示全部楼层
       列表属于可修改对象,大多数可修改对象的方法都是直接对对象自身进行操作,使对象的内容或状态发生改变,因此,一般都没有返回值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 18:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表