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

lea*_*ner 40 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
Run Code Online (Sandbox Code Playgroud)

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

小智 47

列表是可变的

更改

last_list=last_list.append(p.last_name)
Run Code Online (Sandbox Code Playgroud)

last_list.append(p.last_name)
Run Code Online (Sandbox Code Playgroud)

将工作

  • 救了我几个小时的痛苦。 (3认同)

Céd*_*ien 35

在进行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
Run Code Online (Sandbox Code Playgroud)


小智 10

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

last_list.append(p.last)
Run Code Online (Sandbox Code Playgroud)

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


Joe*_*Day 6

我想你想要的是这样的:

last_list=[]
if p.last_name != None and p.last_name != "":
    last_list.append(p.last_name)
print last_list
Run Code Online (Sandbox Code Playgroud)

您当前的 if 语句:

if p.last_name == None or p.last_name == "":
    pass
Run Code Online (Sandbox Code Playgroud)

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

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