2

各キーに項目のリスト (ベクトル) がある辞書があります。

from collections import defaultdict
dict = defaultdict(list)
dict[133] = [2,4,64,312]
dict[4] = [2,3,5,12,45,32]
dict[54] = [12,2,443,223]

def getTotalVectorItems(items):
  total = 0
  for v in items.values():
    total += len(v)
  return total

print getTotalVectorItems(dict)

これは印刷されます:

14 # number of items in the 3 dict keys.

この「getTotalVectorItems」関数を作成する以外に、より簡単な方法はありますか? これを行う簡単な方法がすでにあるように感じます。

4

2 に答える 2

7

ジェネレータ式ビルトインを探していますsum()

sum(len(v) for v in items.values())

関数は指定されたイテレータのsum()値を合計し、ジェネレータ式はリスト内の各値の長さを生成します。

問題のドメインのコンテキストでベクトルという用語を使用していない限り、リスト ベクトルの呼び出しは、おそらくほとんどの Python プログラマーを混乱させることに注意してください。

于 2013-02-12T20:19:20.390 に答える
1
print sum(map(len,dic.itervalues()))
于 2013-02-12T20:33:11.623 に答える