0

これが単純すぎる質問の場合は申し訳ありませんがsumif、Pythonにsum識別子とカテゴリで機能する関数はありますか?したがって、この場合、sumif識別子と年を引数として取り、金額を合計する関数が必要です。たとえば、sumif('105','2006')を返す必要があり1200ます。

data = {'105':[{'2005': 500}, {'2005', 13000}, {'2006', 100}, {'2006', 200}, {'2006', 900}], '256': [{'2005', 5000}, {'2005', 800}]}
4

2 に答える 2

5
>>> from collections import Counter
>>> data = {'105':[{'2005': 500}, {'2005': 13000}, {'2006': 100}, {'2006': 200}, {'2006': 900}], '256': [{'2005': 5000}, {'2005': 800}]}

>>> sum(map(Counter, data['105']), Counter())['2006']
1200

したがって、 の定義は次のsumifようになります。

sumif = lambda x, y: sum(map(Counter, data[x]), Counter())[y]
于 2012-05-15T13:08:01.363 に答える
1

パラメータが一定で、辞書のサイズが常に同じである場合、次のようになります

sum( d.values()[0] for d in data['105'] if d.keys()[0] == '2006')

多くの方法があります

より良い質問は次のとおりです: 奇妙なデータ構造 (singleton-dicts を含む) はどこから来たのですか?

于 2012-05-15T13:13:45.123 に答える