def recListSum(lst):
'''Takes an arbitrarily nested list as a parameter and returns the sum of
the numbers in the list'''
if len(lst)==0:
return 0
if len(lst) > 0:
val = recListSum(lst[1:])+recListSum(lst[0])
if type(lst[0]) != list:
if type(lst[0])==float or type(lst[0])==int:
return val
if type(lst[0])==list and len(lst[0])>0:
val = recListSum(lst[1:])+recListSum(lst[0])
return val
0
A
回答
0
根據您的評論,這聽起來像是您給len()函數一個整數值。由於一個數字沒有真正的長度,這會引發錯誤。
我會檢查,「lst」實際上是一個列表,當你假設它是(可能調用此方法導致「lst」成爲一個整數之前的一些錯誤)。
我認爲你最後一條if語句的第一個條件是保護那裏的len()函數,但是如果我對「lst」有時只是一個整數有所懷疑,
0
這是一個可能的解決方案。
def recListSum(lst):
'''Takes an arbitrarily nested list as a parameter and returns the sum of
the numbers in the list'''
# handle trivial cases
if len(lst) == 0:
return 0
if len(lst) == 1:
return lst[0]
# sum and unfold
total = 0
new_lst = []
for item in lst:
if isinstance(item, list):
new_lst += item
else:
total += item
new_lst.append(total)
# recurse
return recListSum(new_lst)
+0
這產生aTraceback(最近一次調用最後): 文件 「
0
一個簡單的方法列在下面。 我認爲lst
是list
其中包括list
,int
或float
def recListSum(lst):
if type(lst) in (int,float):
return lst
elif not type(lst) is list:
raise TypeError
elif len(lst) == 0:
return 0
else:
return recListSum(lst[0])+recListSum(lst[1:])
相關問題
- 1. 嵌套列表和轉換爲浮點數
- 2. 嵌套列表和計數()
- 3. C思維:浮點數與整數和浮點數表示法
- 4. 顯示整數和整數浮點數作爲浮點數
- 5. 計算整數和一個浮點數
- 6. 在列表中查找整數和浮點數
- 7. 排序列表,其中有字符串,浮點數和整數
- 8. 求和浮點數和整數與jquery
- 9. CSS浮動和嵌套列表
- 10. 浮點和整數模糊
- 11. zend表單浮點和整數驗證
- 12. Python中的嵌套浮點數組
- 13. 轉換列表中列出的數字(包括浮點和整數)
- 14. 拆分浮點數到Ruby中的整數和小數點
- 15. 使用浮點數和整數
- 16. 整數和浮點數轉換
- 17. 提取整數和浮點數
- 18. Python計算:浮點數和整數
- 19. 在RGB和一個整數/浮點值之間進行轉換
- 20. python大寫嵌套列表的字符串和整數
- 21. 在嵌套列表中迭代並將索引值轉換爲整數和浮點型
- 22. Python列表,字符串和浮點數
- 23. 不使用SUM函數的嵌套列表之和(練習)
- 24. 察看之和爲整數或浮點數
- 25. 對象和嵌套數據列表
- 26. 使用負值和正值對整數和浮點數列表進行排序?
- 27. 遞歸搜索多個嵌套列表並返回整數:Python
- 28. Vala的大整數和任意/多精度浮點數
- 29. Htaccess:多個參數和嵌套括號
- 30. 隨機森林評價陣列浮點數和整數 - numpy的
什麼是你的問題? :) – DaveBensonPhillips
我不斷收到一個'int'類型的對象有沒有len()錯誤@ user3697163 – Val
哪一行?您需要編輯問題以包含所有這些相關詳細信息。人們不會用梳子來找出錯誤。 – DaveBensonPhillips