2017-11-10 154 views
0
list1 = [['hello',3],['bye',4].....] 

我需要找到數字的總和,在這種情況下,3 + 4 = 7對於未定義數量的項目在列表中所有像這樣的結構如何在字符串和數字列表中找到列表元素的總和Python

我不知道如何從每個子列表中的子列表中調用一個spisific元素以獲取sum命令。我嘗試了以下內容,但是我在第一個托架中放置了什麼?還是有更好的方法來寫這個?

sum(list1[][1]) 

謝謝!!

+0

歡迎來到SO。不幸的是,這不是一個論壇,教程或代碼編寫服務。請花時間閱讀[問]和它包含的鏈接。你應該花一些時間在[教程](https://docs.python.org/3/tutorial/index.html)上練習,練習例子。它將爲您介紹Python所提供的工具,並且您甚至可以開始獲得解決問題的方法。 – wwii

回答

0

對於一個簡單的二維列表,你可以試試這個:

list1 = [['hello',3],['bye',4]] 
the_sum = sum(i[-1] for i in list1) 

然而,對於n尺寸的列表,遞歸是最好的:

list1 = [['hello',3],['bye',4], [["hi", 19], ["yes", 18]]] 

def flatten(s): 
    if not isinstance(s, list): 
     yield s 
    else: 
     for i in s: 
      for b in flatten(i): 
       yield b 

final_result = sum(filter(lambda x:isinstance(x, int), list(flatten(list1)))) 

輸出:

44 
相關問題