8

リストのリストがあり、内部リストを合計する必要があります。たとえば、

a = [[1,2,3], [2,1,4], [4,3,6]]

私の場合、a [i]の長さは同じです。つまり、すべての内部リストの次元は同じです。

そして私は次のように出力が必要です

result = [6,7,13]

私がしたことは:

result = [sum(a[i]) for i in range(len(a))]

私のlen(a)は非常に高いので、forループを使用せずに結果を取得する別の方法があることを願っています。

4

3 に答える 3

23
result = map(sum, a)

私がそれをする方法です。または:

result = [sum(b) for b in a]

2番目のバリエーションは、不要な範囲ステートメントを回避することを除いて、同じです。Pythonでは、個別の変数をインデックスとして保持しなくても、リストを直接反復処理できます。

于 2012-11-08T06:31:05.297 に答える
3

私は誰もそれを好きではないことを知っていますが、オプションを与えるだけです:

result = [reduce(lambda x, y: x+y, l) for l in a]
于 2012-11-08T07:02:55.847 に答える
1

簡単な答え。

a = [[1,2,3], [2,1,4], [4,3,6]]
result = [sum(l) for l in a]

result
[6, 7, 13]
于 2012-11-08T06:33:51.933 に答える