繁体   English   中英

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

[英]Python error : AttributeError: 'NoneType' object has no attribute 'len'

我的代码非常简单,但我不知道为什么会引发此错误?

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

median([4,6,1])

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

我在这里做错了什么? 谢谢 !

numbers.sort()就地工作-它更改数字,但返回None ,所以这就是newnumbers包含的内容。 您应该使用newnumbers = sorted(numbers) ,这将解决异常。

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

def median(numbers):
    print len(numbers)

将完成相同的工作。 (并且您不返回中位数)

这里有两个问题:

  • 列表上的sort()方法仅修改列表,而不会返回新列表,因此newnumbersNone
  • 您应该写len(newnumbers) ,而不是newnumbers.len()

该语法对于查找列表长度不正确。

唯一的变化是len(newnumbers)这是必需的。 由于没有显示元素,因此没有唯一的排序目的,无论排序如何,长度都将保持不变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM