簡體   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