2024-04-26 07:46:24 发布
网友
我的代码非常简单,但我不明白它为什么抛出这个错误?在
def median(numbers): newnumbers = numbers.sort() length = newnumbers.len() print length median([4,6,1])
我在网上和SO上搜索,len()是获取列表长度的正确方法。但是,我一直收到错误“AttributeError:'NoneType'对象没有属性'len'”
我做错什么了?谢谢!在
查找列表长度的语法不正确。在
唯一的更改是len(newnumbers),这是必需的。排序并不是唯一的目的,因为您不显示元素,所以无论排序如何,长度都将保持不变。在
len(newnumbers)
这里有两个问题:
sort()
newnumbers
numbers.sort()在适当的地方工作-它改变数字,但返回None,因此newnumbers包含的内容。 您应该使用newnumbers = sorted(numbers),这将解决异常。在
numbers.sort()
None
newnumbers = sorted(numbers)
但是,请注意排序不是必需的,因为您只是返回输入列表的长度。所以:
def median(numbers): print len(numbers)
会达到同样的效果。(而且你没有返回中间值)
查找列表长度的语法不正确。在
唯一的更改是
len(newnumbers)
,这是必需的。排序并不是唯一的目的,因为您不显示元素,所以无论排序如何,长度都将保持不变。在这里有两个问题:
sort()
方法只修改列表,不返回新的列表,因此newnumbers
是{len(newnumbers)
,而不是{numbers.sort()
在适当的地方工作-它改变数字,但返回None
,因此newnumbers
包含的内容。 您应该使用newnumbers = sorted(numbers)
,这将解决异常。在但是,请注意排序不是必需的,因为您只是返回输入列表的长度。所以:
会达到同样的效果。(而且你没有返回中间值)
相关问题 更多 >
编程相关推荐