鱼C论坛

 找回密码
 立即注册
查看: 2297|回复: 2

[已解决]求教为什么列表实例用具体的列表方法后,返回None

[复制链接]
发表于 2023-4-10 16:42:01 | 显示全部楼层 |阅读模式

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

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

x
求教为什么列表实例用具体的列表方法后,返回None
例如
a = [3,4,9].append(5)

a 此时为None

但是
a = [3,4,9]
a.append(5)

返回[3,4,9,5]

这是为什么呢?
  
最佳答案
2023-4-10 16:45:45
这个现象的原因是因为Python中的列表方法(如append())通常直接修改原始列表而不是返回一个新的列表。

在第一个例子中:
a = [3,4,9].append(5)

这里发生的事情是:首先创建了一个列表 [3,4,9],然后调用了它的 append() 方法,将 5 添加到这个列表。append() 方法的返回值是 None,表示它没有返回任何值。因此,a 被赋值为 None。

在第二个例子中:
a = [3,4,9]
a.append(5)

这里首先创建了一个列表 [3,4,9] 并将其赋值给变量 a。然后,调用 a 的 append() 方法,将 5 添加到这个列表。由于 append() 方法直接修改了原始列表,所以在执行这个方法后,a 的值变为了 [3,4,9,5]。

所以,当你需要使用列表方法时,要注意它们通常会直接修改原始列表而不是返回一个新列表。如果你需要保留原始列表的值,可以考虑使用其它方法,如列表解析、copy() 方法等。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-10 16:45:29 From FishC Mobile | 显示全部楼层
您自己都说了,是返回值的问题,这个接口就是这样定义的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-10 16:45:45 | 显示全部楼层    本楼为最佳答案   
这个现象的原因是因为Python中的列表方法(如append())通常直接修改原始列表而不是返回一个新的列表。

在第一个例子中:
a = [3,4,9].append(5)

这里发生的事情是:首先创建了一个列表 [3,4,9],然后调用了它的 append() 方法,将 5 添加到这个列表。append() 方法的返回值是 None,表示它没有返回任何值。因此,a 被赋值为 None。

在第二个例子中:
a = [3,4,9]
a.append(5)

这里首先创建了一个列表 [3,4,9] 并将其赋值给变量 a。然后,调用 a 的 append() 方法,将 5 添加到这个列表。由于 append() 方法直接修改了原始列表,所以在执行这个方法后,a 的值变为了 [3,4,9,5]。

所以,当你需要使用列表方法时,要注意它们通常会直接修改原始列表而不是返回一个新列表。如果你需要保留原始列表的值,可以考虑使用其它方法,如列表解析、copy() 方法等。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 03:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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