1

Python でデータベースから取得したリストの要素を合計する方法。試行するたびに、 TypeError: unsupported operand type(s) for +: 'int' and 'tuple' というエラーが発生します

def sum_num(mylist):
     return sum(mylist)

リストを印刷すると、[(52642,), (57127,), (9000,), (29000,), (350000,), (21000,), (41400,), (21600,)] が得られます私のテーブルからのデータ

mylist は、データベースのデータから作成されたリストです。誰でもエラーがある場所を教えてもらえますか? これを行う他の方法がある場合は?

print sum(mylist[1]+ mylist[2]) を実行しているとき、正しい答えが得られます

4

3 に答える 3

3
lst = [ i[0] for i in mylist]
sum(lst)

この方法では別のリストを作成する必要がありますが、これも検討できる代替手段です。

編集:

すでに述べたように、 の要素mylistはタプルです。の各要素の最初の位置には数値 (int) があるため、リスト内の各要素 (タプル) のmylist位置にある値を合計します。0

于 2013-02-16T23:02:27.320 に答える
1

タプルのリストがあるので、次のようにする必要があります。

sum( sum(tuple) for tuple in mylist )
于 2013-02-16T22:42:20.673 に答える
0

コンポーネントを合計する前に、最初にリストまたはタプルのリストを平坦化できます。

mylist =  [(52642,), (57127,), (9000,), (29000,), (350000,), (21000,)...]
sum(sum(mylist,()))
于 2013-02-16T22:48:16.983 に答える