0

次のようなネストされたリストを含むリストがあります。

[ [datetime.datetime(2000, 12, 10, 0, 0), 0.0011] , [datetime.datetime(2000, 12, 11, 0, 0), 0.0013 , [datetime.datetime(2000, 12, 12, 0, 0), 0.0014]]

etc..

このようにサブ要素を2つずつ追加するにはどうすればよいですか:

合計(0.0011,0.0013) + 0.0014

次に、この合計の結果を取得して、次のサブ要素に追加しますか?

私は基本的に値を合成しようとしています。

ありがとう!

4

2 に答える 2

2

これを行う最も簡単な方法はsum()組み込み式とジェネレーター式を使用することです。

>>>items = [[datetime.datetime(2000, 12, 10, 0, 0), 0.0011], [datetime.datetime(2000, 12, 11, 0, 0), 0.0013 ], [datetime.datetime(2000, 12, 12, 0, 0), 0.0014]]
>>>sum(item[1] for item in items)
0.0038000000000000004

編集:

合計の各段階の結果を出力したい場合は、functools.reduce()(2.x では組み込みのreduce)を使用します。

from functools import reduce
import datetime

items = [[datetime.datetime(2000, 12, 10, 0, 0), 0.0011], [datetime.datetime(2000, 12, 11, 0, 0), 0.0013 ], [datetime.datetime(2000, 12, 12, 0, 0), 0.0014]]

def add_printing_result(a, b):
    total = a+b
    print(total)
    return total

reduce(add_printing_result, (item[1] for item in items))

これにより、次のことがわかります。

0.0024000000000000002
0.0038000000000000004
于 2012-04-27T01:07:12.323 に答える
0
sum = 0, myarr = [ [datetime.datetime(2000, 12, 10, 0, 0), 0.0011] , [datetime.datetime(2000, 12, 11, 0, 0), 0.0013] , [datetime.datetime(2000, 12, 12, 0, 0), 0.0014]]

for(i in myarr):
    sum+=i[1]

これを行うためのより良い方法があると確信しています(私はPythonの専門家ではありません)が、これはsumサブ要素の合計になるように値を適切に合計する必要があります。

于 2012-04-27T00:56:25.663 に答える