Python 蟒蛇3';非类型';对象不支持项分配

Python 蟒蛇3';非类型';对象不支持项分配,python,python-3.x,Python,Python 3.x,当我试图从python列表向链接列表添加底部时,我遇到了一个错误 我的代码是: def8(): 错误: Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> Eight() File "C:\Users\17yz77\Downloads\Problem.py", line 164, in Eight print(createList(aList)) File "

当我试图从python列表向链接列表添加底部时,我遇到了一个错误 我的代码是:

def8():

错误:

Traceback (most recent call last): 
File "<pyshell#3>", line 1, in <module> Eight() 
File "C:\Users\17yz77\Downloads\Problem.py", line 164, in Eight 
    print(createList(aList)) 
File "C:\Users\17yz77\Downloads\Problem.py", line 151, in 
    createList linkList = addBottom(linkList,i) 
File "C:\Users\17yz77\Downloads\Problem.py", line 161, in 
    addBottom ptr['next'] = {'data':value,'next':None} 
TypeError: 'NoneType' object does not support item assignment 
回溯(最近一次呼叫最后一次):
文件“”,第1行,共八行()
文件“C:\Users\17yz77\Downloads\Problem.py”,第164行,共八行
打印(创建列表(列表))
文件“C:\Users\17yz77\Downloads\Problem.py”,第151行,在
createList linkList=addBottom(linkList,i)
文件“C:\Users\17yz77\Downloads\Problem.py”,第161行,在
addBottom ptr['next']={'data':值,'next':无}
TypeError:“非类型”对象不支持项分配

您无法将项目分配给
None
,因为
None
不代表任何内容。

您试图到达结构的末尾,然后扩展它。问题是你的循环让你跑得太远了
None
是一个常量;不能更改其值。而是在最后一个节点停止:

while ptr['next'] is not None:
    ptr = ptr['next']

# ptr is now the last node in the sequence.
ptr['next'] = {'data':value,'next':None}

还要注意,
不是
最好是对照
进行检查。原因可在许多其他帖子中找到。

Traceback(最近一次调用last):文件“”,第1行,在八个()文件“C:\Users\17yz77\Downloads\Problem.py”中,第164行,在八个打印(createList(aList))文件“C:\Users\17yz77\Downloads\Problem.py”中,第151行,在createList linkList=addBottom(linkList,i)文件中“C:\Users\17yz77\Downloads\Problem.py”,第161行,在addBottom ptr['next']={'data':value,'next':None}TypeError:'NoneType'对象不支持项分配真的不知道为什么我不能说None=addBottom(None,I)你不能这样说,因为它没有任何意义。
None
是给没有值的Python对象的特殊名称。将函数的返回值赋给这个特殊名称是没有意义的。将错误消息编辑到帖子中,而不是作为注释。当你得到解决方案时,请记住向上投票有用的东西d接受你最喜欢的答案(即使你必须自己写),因此堆栈溢出可以正确地存档问题。OMG非常感谢,我甚至不知道该说什么我只是非常兴奋,很高兴有人能帮助我编写代码。非常感谢,这是我第一次问问题,XDDDDwait,请稍候,但它是ptr is节点,我将返回它,这意味着此函数应该停止,不再从m this while loop while循环将停止,但函数的其余部分将停止。我们邀请您参与其中,即使我们必须等到您对所选主题有足够的了解。
while ptr != None:
    ptr = ptr['next']
    # !!! At this point in the code, ptr is None !!!
ptr['next'] = {'data':value,'next':None}
while ptr['next'] is not None:
    ptr = ptr['next']

# ptr is now the last node in the sequence.
ptr['next'] = {'data':value,'next':None}