2011-02-08 6 views

答えて

6

a = sum(e for d in b.itervalues() for e, _ in d)作品をありがとうございます。

a = sum([e for d in b.itervalues() for e, _ in d])はPython 2.3で動作します。

私はそれを試していませんが、a = sum(e for d in b.values() for e, _ in d)はPython 3.0に相当するはずです。

+0

'iteritems()'の代わりに 'itervalues()'を使って、2つ以上の文字を縮小したことを涼しくしました。良いアイデア! :) –

+0

私にとって面白いのは、少なくともPython 2.3ではb.itervalues()のdのeと同じような[e for e、_ in d]が動作しないということです。 "for"ステートメントは、明らかに、機能的に導かれるべきものではなく、その変数に現在関連付けられている値に反復的に適用されます。 – Swiss

+1

@ pf.me: 'itervalues'を使う点は、値がすべて必要であることです。「コードを縮めない」ことです。 –

1

sum(j for _,i in b.iteritems() for j,_ in i)となります。

関連する問題