更简单的方法来添加多个列表项?

时间:2013-03-17 19:29:41

标签: python

是否有更简单的方法将列表中的项目与我下面编写的代码相加?我是新手,这看起来有点笨拙。

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)

4 个答案:

答案 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, []))