我有一个脚本,我在其中为每个用户提取值并在列表中添加它但我得到"'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)
将工作
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 在下一次运行中将变得无效。
我想你想要的是这样的:
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 在您发布的代码中的其他任何地方使用。