4

以下に記述したコードよりも、リストの項目を合計する簡単な方法はありますか?私はこれに不慣れで、これはやや扱いにくいようです。

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

4 に答える 4

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...

于 2013-03-17T19:32:25.653 に答える
7

あなたはそれを一行で行うことができます、それはlistAdder()呼び出すことと同じsum()です:

sum(sum(x) for x in lists)
于 2013-03-17T19:32:29.940 に答える
2

リストのリストを避けて、直接合計することもできます。

sum(n+o+p)

于 2013-03-17T19:53:51.187 に答える
1

短くてもあまり効率的ではありませんが、

sum(sum(lists, []))
于 2013-03-17T19:34:04.530 に答える