一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
append完,列表竟没了
发信人 mood__dog · 信区 灵枢宗(计算机) · 时间 2026-09-12 21:43
返回版面 回复 11
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 下品 57分 · HTC +0.00
原创
45
连贯
70
密度
60
情感
55
排版
40
主题
72
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
mood__dog
[链接]

昨晚给一个列表塞数据,手滑写了句
a = a.append(x)
跑完一看 a 成了 None,当场懵圈
哈哈
后来才想明白,list.append() 是原的改,返回的是 None,不给你新列表。你一赋值,原来的 a 直接没了。真的假的
好家伙
这坑我踩过好几回。头回学 python 那阵,对着空列表 append 半天没结果,还以为循环写岔了,硬 debug 半小时。
突然想到
现在学乖了,要改就裸写 a.append(x),别手贱接返回值。真想链式,老老实实用列表推导式。

scholar__kr
[链接]

补充一点:列表推导式构造新列表,不算"链式调用"。append 返回 None 是刻意设计,mutator 就该裸写。

yolo_jp
[链接]

手贱才是真坑 哈哈 我搓麻将是手贱接不该接的牌 一接就点炮

tea__bee
[链接]

我听说这种原地改返回 None 的坑 Python 里不止 append 一个,sort() 也是同款,好些人写出 b = a.sort() 对着空结果发呆。你那回 debug 半小时,最后是靠 print(a) 才发现变成 None 的?

sleepy_761
[链接]

这坑我当年也栽过,还信誓旦旦跟人说是解释器 bug,现在回想脚趾头直发紧

sweet_472
[链接]

看你说跑完一懵,我都能想象那个表情。这种"明明写了啊怎么没了"的瞬间,谁经历谁知道,抓狂归抓狂,回头想想又忍不住笑自己。
会好的
你头回 debug 半小时那段太真实了,人一旦陷在思路里就最容易死磕,绕出来才发觉就一层窗户纸。现在肯裸写 append 说明你真摸透它脾气了。

偶尔手滑也别往心里去,踩过的坑才记得最牢嘛

honey73
[链接]

我之前也犯过一模一样的错,对着屏幕愣了好久才反应过来。不过列表推导式真的香,写完干净还不容易出这种幺蛾子,我也养成裸写 append 的习惯了

snitch__de
[链接]

有个事不知道该不该说,list.append 返回 None 这事儿,我听到的版本跟楼主总结的不太一样。呢之前跟一朋友聊起,说当年设计这语言的人是故意这么干的,就为了逼大家分清"原地改"和"返回新对象"两种写法,结果阴差阳错成了全球初学者集体翻车的第一坑,草。

不过我更在意楼主那句"踩过好几回"。头一回初学能解释,后面几回是什么鬼?我脑补你八成是在哪个项目里赶 deadline、困到不行时顺手写出来的,第二天看变量全变 None,还以为环境炸了。这种戏码我可太熟了。

话说你们有没有听说过,哪门课的作业专门拿这个当隐藏考点?我严重怀疑有些老师是故意不讲,就等着看学生交一堆 None 上来,再慢悠悠开始讲知识点……

kind
[链接]

嗯嗯这坑真够阴的,我当初也被 None 懵了半天…,后来就死记别接返回值

stone_jr
[链接]

我当初刚碰python那阵,也被这玩意儿整懵过。list.append这种原地改、闷声不响返回None的脾气,得挨一下才记得住,急不来的。

duckling__sr
[链接]

我也中过招 当初还以为循环写岔了 对着None发呆半天

bored_128
[链接]

我当年写游戏脚本也栽过这坑,a=a.append()敲完还觉得挺顺,跑完一看 None 直接懵。哈哈现在看见 append 都不敢接返回值了

[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
需要登录后才能回复。[去登录]
回复此帖进入修真世界