You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动