Python 类型错误:';非类型';对象不能与列表一起订阅
我创建了一个函数,它接受要反转的数字列表Python 类型错误:';非类型';对象不能与列表一起订阅,python,python-3.x,Python,Python 3.x,我创建了一个函数,它接受要反转的数字列表 def getListBackward(number): reversedNumbers = number[::-1] #line with error ''' code that does stuff with reversed numbers below ''' EDIT: 这是调用getListBakcward的函数 def sumofreversed(numbers): total = getListBa
def getListBackward(number):
reversedNumbers = number[::-1] #line with error
'''
code that does stuff with reversed numbers below
'''
EDIT:
这是调用getListBakcward的函数
def sumofreversed(numbers):
total = getListBackward(numbers) + otherlist(numbers)
return total
我通过用户输入获得数字,并将其作为参数传递。
但是,我遇到了以下错误:
TypeError: 'NoneType' object is not subscriptable
我做错了什么?如何解决此问题?您没有将反向列表返回给被调用的,函数将返回
None
作为默认值,请尝试返回该值:
>>> def getListBackward(number):
... return number[::-1]
>>> def sumofreversed(numbers):
... total = getListBackward(numbers) + [1,2,3]
... return total
>>> alist = [1,2,3,4,5]
>>> print getListBackward(alist)
[5, 4, 3, 2, 1]
>>> print sumofreversed(alist)
[5, 4, 3, 2, 1, 1, 2, 3]
一切正常。根据回溯状态,编号为“无”。您是否还有其他代码可以显示,这可能会有所帮助?在发布调用此函数的代码时,您似乎传递了错误的
number
。错误出现在调用getListBackward
的代码中,其值为None
,而不是列表。或者,在getListBackward
调用并返回None
的代码中,或者在调用它并向其传递None
的代码中。你必须弄清楚在你的代码中,当你期望一个列表时,你在哪里得到了一个None
。@ODiogoSilva,它会给出一个不同的类型错误('NoneType'对象没有属性'\uu getitem'
)哦,哎哟,在python3上,它将是关于subscribtable的。在python2上,它将是关于\uuu getitem\uu
。def getListBackward(number)函数已经在末尾返回了一个列表。这就是为什么我有点困惑,为什么它会给我这个错误(您是否可以给函数一个空列表,以便它返回一个[]
?只需打印出它返回的值。我甚至不认为它返回任何值,因为它被卡在了那行代码上。=\n您可以发布回溯信息,以便我们找出错误的原因吗?