0

次のようなリストのリストがあります

T =[[0.10113], [0.56325], [0.02563], [0.09602], [0.06406], [0.04807]]

これらの数字の合計を求めたいと思います。

私はPythonプログラミングが初めてで、単純なint(T[1])変換を試みるとエラーが発生します

TypeError: int() argument must be a string or a number, not 'list'

ご意見をお待ちしております。

4

5 に答える 5

2

簡単:

sum(x[0] for x in T)

あなたは終わった:)


もちろん、使用できます

import itertools
sum(itertools.chain.from_iterable(T))

それも。これは、サブリストにそれぞれ複数の要素がある場合に機能します。

于 2012-11-29T15:51:18.643 に答える
2

これに使用できますmap

sum(map(sum, T))
>>> sum(map(sum, T))
0.89816000000000007

のドキュメントからmap

マップ(関数、反復可能、...)

関数を iterable のすべてのアイテムに適用し、結果のリストを返します。

したがって、内部リストを合計するために使用してから、最終的な回答のためにそれらの値を合計するためmapの呼び出しを使用しています。sum

このアプローチは、内部リストに複数のアイテムが含まれている場合に機能します。

于 2012-11-29T15:51:34.850 に答える
1

numpy sum モジュールを使用できます

 import numpy as np
 result = int(np.sum(T, axis=0))

または組み込みのマップ機能

 result = int(sum(map(sum, T)))
于 2012-11-29T15:53:41.270 に答える
1
In [31]: T =[[0.10113], [0.56325], [0.02563], [0.09602], [0.06406], [0.04807]]

In [32]: sum(t[0] for t in T)
Out[32]: 0.8981600000000001
于 2012-11-29T15:51:40.183 に答える
1
>>> T =[[0.10113], [0.56325], [0.02563], [0.09602], [0.06406], [0.04807]]
>>> sum(x[0] for x in T)
0.8981600000000001
于 2012-11-29T15:51:51.677 に答える