Python列表append操作报AttributeError问题排查及条件追加数据需求实现咨询
Python列表append操作报AttributeError问题排查及条件追加数据需求实现咨询
嗨,我来帮你解决这个问题~
你遇到的AttributeError: 'NoneType' object has no attribute 'append'错误,根源在于对list.append()方法的理解有误:
list.append()是原地修改列表的方法,它不会返回新的列表,而是直接在原列表上添加元素,方法本身的返回值是None。
你当前代码里每次都执行query = query.append(...),这相当于把append返回的None重新赋值给了query变量。第一次执行后query就变成了None,后续再调用append时,自然就会因为None没有append属性而报错。
修正后的代码
只需要去掉赋值操作,直接调用append即可,修改后的函数如下:
def data(fonds=True, indice=True, categorie=True): query = [] if fonds: query.append({ "ID": 10, "Type": 10 }) if indice: query.append({ "ID": 20, "Type": 20 }) if categorie: query.append({ "ID": 30, "Type": 30 }) return query # 测试调用 df = data(fonds=True, indice=True, categorie=False) print(df)
效果验证
- 当仅
fonds=True时,返回[{"ID": 10, "Type": 10}] - 当
fonds=True, indice=True, categorie=True时,返回包含三个字典的列表 - 你测试的
data(fonds=True, indice=True, categorie=False)会返回:[{"ID": 10, "Type": 10}, {"ID": 20, "Type": 20}]
这样就能完全满足你根据条件动态追加数据的需求啦~
备注:内容来源于stack exchange,提问作者jacques




