如何用Python将字符串转为列表?调用append后变量为None是什么原因?
问题原因
- Python中列表的
append()方法属于原地操作,只会修改调用方法的列表本身,不会返回修改后的新列表,所有无显式返回值的方法默认都会返回None - 你代码里执行
codes = codes.append(code)时,相当于把append返回的None赋值给了原来的codes变量,直接覆盖了之前定义的空列表,所以最终得到的codes是None
正确写法
写法1:直接调用append不赋值(适用需要逐步往列表加元素的场景)
code = 'abc' codes = [] if code != '': codes.append(code)
运行后codes的值就是['abc']
写法2:三目表达式直接构造列表(适用单元素生成的简化场景)
code = 'abc' codes = [code] if code != '' else []
内容的提问来源于stack exchange,提问作者jaried
相关产品推荐
相关产品推荐

