2017-06-19 37 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) 此外,在这里使用生成器可能会更好,因为您不重用列表,因为它更高效。

相关问题