社区
其他技术讨论专区
帖子详情
为什么append()总是在Python中返回None?
weixin_38062902
2019-09-12 01:09:57
list = [1, 2, 3] print list.append(4) ## WRONG, print does not work, append() returns None ## RIGHT: list.append(4) print list ## [1, 2, 3, 4] 我正在学习Python,我不确定这个问题是否特定于语言以及如何在Python中实现append.
...全文
366
1
打赏
收藏
为什么append()总是在Python中返回None?
list = [1, 2, 3] print list.append(4) ## WRONG, print does not work, append() returns None ## RIGHT: list.append(4) print list ## [1, 2, 3, 4] 我正在学习Python,我不确定这个问题是否特定于语言以及如何在Python中实现append.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38064768
2019-09-12
打赏
举报
回复
append是一个变异(破坏性)操作(它修改了列表而不是返回一个新列表).执行非破坏性等效追加的惯用方法是 l = [1,2,3] print l + [4] # [1,2,3,4] print l # [1,2,3] 为了回答你的问题,我的猜测是,如果append返回了新修改的列表,用户可能会认为它是非破坏性的,即他们可能会编写像 m = l.append("a") n = l.append("b") 并期望n为[1,2,3,“b”]
在
Python
中
append
以及extend
返回
None的例子
Python
中
,列表是可以进行修改的:赋值、删除元素、分片等等。在给列表添加元素时,有两个常见的方法:
append
和extend。
append
在列表的最后添加元素,但是每次只能添加一个元素。extend更像一个连接操作,即用一个列表扩充另一个列表。(依然在末尾位置) 在实现这两个方法时,出现结果为None的情况,如下: list1 = ['a','b'] print(list1.
append
('c')) print(list1.extend('d')) list2 = list1.
append
('e') print(list2) 结果为:
append
方法和其他一些方法类似,只是在恰当的位
为什么
append
() 在
Python
中
总是
返回
None?
总的来说,在
Python
中
,`
append
()`方法之所以会隐式地
返回
被追加的元素本身,是为了保持与JavaScript兼容性,同时为了避免不必要的`None`值。在
Python
中
,`
append
()`方法确实可能会导致`None`
返回
,这通常是因为方法本身没有明确
返回
值,但是为了保持与JavaScript的兼容性,它会
返回
被追加到列表
中
的元素本身。由于我们在`My
Append
`方法
中
显式
返回
了`None`,所以即使在没有明确指定
返回
值的情况下,函数也会
返回
`None`。
Python
中
append
返回
None
Python
中
append
以及extend
返回
None lst=[] lst2=lst.
append
(re.findall(r"[s][hz]\d{6}", href)[0]) print(lst2)
append
方法只是在恰当的位置修改原来的列表。意味着,不是
返回
一个修改过的列表,而是直接修改原来的列表,所以代码
中
print函数
中
的lst.
append
()只是对列表进行了修改,不会有
返回
值...
Python
-列表
Append
返回
None的问题
今天在调用API对文本进行翻译的时候,将翻译好的文本
append
进一个创建的列表
中
,用这种方式来存储每次翻译后的结构,当时的代码写的是: 在debug 的时候发现
返回
来的不是数组,
返回
的是显然不是我们想要的结果,经过debug的时候调试发现,可能是
append
方法的问题,经过实验发现确实如此。
append
方法是在原来的列表上进行修改,这个方法没有
返回
值,
Python
中
没有
返回
值,默认等于None。
【
Python
】
append
的坑:
返回
值为None
有一列表b = [1],想要在b内
append
元素2后整个b后
append
到a
中
,一开始想把两个
append
写成一行,却发现a=[None] a = [] b = [1] a.
append
(b.
append
(2)) print(a) 输出a为: [None] 原因是因为,
append
这个操作是没有
返回
值的(即
返回
一个None),
append
只更新b本身,所以
append
进a的是一个None。正...
其他技术讨论专区
473
社区成员
791,201
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章