2017-06-19 48 views
0
ab = [ ['5','6','7','8','9','10'],['1','2','3'],['3','4','5']] 
print sum([sum(int(x) for x in y for y in ab])]) 

我必須在單個打印語句中找到ab中所有元素的總和。我試圖將每個列表中的每個元素轉換爲int並創建一個列表,其中包含每個列表的總和。 我得到一個語法錯誤,不知道該怎麼做。找到列表中所有元素的總和,列表中有1行中的字符

+0

'print sum(int(x)for y in ab for x in y)' – danihp

+0

for'reduce' fans:'reduce(lambda x,y:int(x)+ int(y),reduce(list。 __add __,AB))' – danihp

回答

0

您正在爲y(外部循環)的for循環之前的x(內部循環)定義for循環。這就是爲什麼它不起作用。你需要的是print sum(int(x) for y in ab for x in y) 此外,在這裏使用生成器可能會更好,因爲您不重用列表,因爲它更高效。

相關問題