Python调用自定义函数时无法向列表追加值问题求助
错误原因
- 未初始化全局变量
qwert:全局变量需要先定义初始值才能在函数内部修改,你没有提前给qwert赋值为空列表,不仅最终输出为空,正常运行还会触发NameError报错,你看到的空输出大概率是运行环境残留了之前定义的空qwert变量。 - 追加逻辑方向颠倒:你写的
qwe.append(qwert)是把qwert的内容追加到你生成的小列表qwe中,和你要实现的「把生成的列表追加到qwert」需求完全相反,全程没有对qwert做任何修改操作,它自然保持初始的空值。
修正后的代码
# 提前初始化全局列表 qwert = [] def func(n): global qwert qwe = [n] # 改为把生成的qwe追加到qwert中 qwert.append(qwe) print('qwe=') print(qwe) print('\nqwert=') print(qwert) return 1 func(3) func(4) func(5) print(qwert)
运行后最终输出qwert的结果就是你预期的[[3], [4], [5]]。
内容的提问来源于stack exchange,提问作者Aadil Rafeeque
相关产品推荐
相关产品推荐

