是否有更简单的方法将列表中的项目与我下面编写的代码相加?我是新手,这看起来有点笨拙。
n = [3,5,7]
o = [4,10,8]
p = [4,10,5]
lists = [n, o, p]
def sumList(x):
return sum(x)
def listAdder(y):
count = 0
for item in y:
count += sumList(item)
return count
print listAdder(lists)
答案 0 :(得分:10)
类似的东西:
from itertools import chain
n = [3,5,7]
o = [4,10,8]
p = [4,10,5]
print sum(chain(n, o, p))
# 56
这可以避免创建不必要的项目列表,因为您直接将它们传递给chain
...
答案 1 :(得分:7)
您可以一行完成,listAdder()
与调用sum()
相同:
sum(sum(x) for x in lists)
答案 2 :(得分:2)
您还可以避免列表列表,直接汇总:
sum(n+o+p)
答案 3 :(得分:1)
尽可能短,但效率不高
sum(sum(lists, []))