a = 0 b = {'a': [(1, 'a'), (2, 'b'), (3, 'c')], 'b': [(4, 'd'), (5, 'e')]} for c, d in b.iteritems(): for e, f in d: a += e // now a = 15
いくつかの方法を試してみました。私は、リスト内包でこの合計を簡素化する方法(可能な場合)を知りたい:このコードスニペットをリスト内包にすることはできますか?どうやって?
a = sum(...)
、事前に pf.meのPython 2.7で
'iteritems()'の代わりに 'itervalues()'を使って、2つ以上の文字を縮小したことを涼しくしました。良いアイデア! :) –
私にとって面白いのは、少なくともPython 2.3ではb.itervalues()のdのeと同じような[e for e、_ in d]が動作しないということです。 "for"ステートメントは、明らかに、機能的に導かれるべきものではなく、その変数に現在関連付けられている値に反復的に適用されます。 – Swiss
@ pf.me: 'itervalues'を使う点は、値がすべて必要であることです。「コードを縮めない」ことです。 –