Python错误:AttributeError:“NoneType”对象没有属性“len”

2024-04-26 07:46:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码非常简单,但我不明白它为什么抛出这个错误?在

def median(numbers):
     newnumbers = numbers.sort()
     length = newnumbers.len()
     print length

median([4,6,1])

我在网上和SO上搜索,len()是获取列表长度的正确方法。但是,我一直收到错误“AttributeError:'NoneType'对象没有属性'len'”

我做错什么了?谢谢!在


Tags: 方法代码列表lensodef错误sort
3条回答

查找列表长度的语法不正确。在

唯一的更改是len(newnumbers),这是必需的。排序并不是唯一的目的,因为您不显示元素,所以无论排序如何,长度都将保持不变。在

这里有两个问题:

  • lists上的sort()方法只修改列表,不返回新的列表,因此newnumbers是{}。在
  • 你应该写len(newnumbers),而不是{}。在

numbers.sort()在适当的地方工作-它改变数字,但返回None,因此newnumbers包含的内容。 您应该使用newnumbers = sorted(numbers),这将解决异常。在

但是,请注意排序不是必需的,因为您只是返回输入列表的长度。所以:

def median(numbers):
    print len(numbers)

会达到同样的效果。(而且你没有返回中间值)

相关问题 更多 >