附加列表但错误'NoneType'对象没有属性'append'

时间:2012-10-15 11:35:06

标签: python list

我有一个脚本,我在其中为每个用户提取值并在列表中添加它但我得到“'NoneType'对象没有属性'append'”。我的代码就像

last_list=[]
if p.last_name==None or p.last_name=="": 
    pass
last_list=last_list.append(p.last_name)
print last_list

我想在列表中添加姓氏。如果没有,那么就不要在列表中添加它。请帮忙 注意:p是我用来从我的模块获取信息的对象,其中包含所有first_name,last_name,age等....请建议....提前致谢

4 个答案:

答案 0 :(得分:35)

列表是可变的

更改

last_list=last_list.append(p.last_name)

last_list.append(p.last_name)

将起作用

答案 1 :(得分:34)

在执行pan_list.append(p.last)时,您正在进行就地操作,这是一个修改对象并且不返回任何内容的操作(即None)。

你应该这样做:

last_list=[]
if p.last_name==None or p.last_name=="": 
    pass
last_list.append(p.last)  # Here I modify the last_list, no affectation
print last_list

答案 2 :(得分:4)

您不应将其分配给任何变量,当您在列表中添加内容时,它会自动更新。 仅使用:-

last_list.append(p.last)

如果再次将其分配给变量“ last_list”,它将不再是列表(由于尚未声明其类型,因此将成为无类型变量) 并且追加将在下一次运行中失效。

答案 3 :(得分:2)

我认为你想要的是:

last_list=[]
if p.last_name != None and p.last_name != "":
    last_list.append(p.last_name)
print last_list

您当前的if语句:

if p.last_name == None or p.last_name == "":
    pass

实际上从不做任何事情。如果p.last_name为none或为空字符串,则它在循环内不执行任何操作。如果p.last_name是其他内容,则跳过if语句的主体。

此外,您的声明pan_list.append(p.last)似乎是一个拼写错误,因为我看到您发布的代码中的其他任何地方都没有使用pan_list和p.last。

相关问题