4

いくつかの値を平均化するためのプログラムを書いていました。詳細: 私はフォルダーを持っていて、その中に番号.txt付きのファイルがたくさんありました。 私が行っていたのは、float 値を合計し、それらをfor each ファイルに格納することだけでした。 その後、のすべての値を合計し、合計番号で割りたいと思います。ファイルの(つまり)。 float
Counter
Counter.txt

しかし、に保存するまでは問題ありませんが、使用してCounterに存在する値を合計したい場合、マニュアルも読んだことを示すエラーが発生 し、整数値も可能であると言っています。しかし、カウンター内の値 を合計することはありますか?Countersum(Counter.values())'float' object has no attribute 'values'

float

4

3 に答える 3

8

ファイルの値を合計するためにCounterオブジェクトを使用しているのはなぜですか?その規定された目的は、「ハッシュ可能なオブジェクトをカウントするため」です(つまり、インスタンスをカウントする複数の個別のオブジェクトがある場合)。

各ファイルの浮動小数点値の合計を保存する場合は、通常の辞書を試してください。

floatsums = {}
floatsums['file1.txt'] = ... // insert code to sum the floats

total = sum(floatsums.values())
numfiles = len(floatsums)
于 2012-06-05T15:36:46.123 に答える
4

さらに簡単:

from collections import defaultdict
sums = defaultdict(lambda: 0)

それから:

sums['a'] += 1.
于 2014-09-19T08:57:17.087 に答える