0

サブセット内の最小値を見つけるために、辞書のサブセットを反復処理したいと思います。ジェネレータ式を使用して値を取得できます。

>>> S = {'a', 'c'}
>>> D = {'a': 2, 'b': 0, 'c': 1, 'd': 3}
>>> min(D[k] for k in S)
1

関連するキーを取得するには、これが可能だと思います:

>>> subset_min = min(D[k] for k in S)
>>> [k for k, v in D.iteritems() if v == subset_min]
['c']

しかし、辞書を再度検索する必要がない方法は確かにありますか? ここmin(D, key=D.get)で説明したようなものを望んでいましたが、この場合の適用方法がわかりません。

4

2 に答える 2

5
min(S, key=D.get)

驚くほどシンプル。

于 2013-08-14T19:01:12.983 に答える