Pythonで次のことを実現できるかどうか疑問に思います。
ネストされたディクショナリnested_dictがあり、各3要素タプル(a, b, c)をサブディクショナリにマップします。また、上記のタプルキーの2番目の要素(つまり、で示される要素)に対応するすべての要素を含むsub_dict別のリストがあります。list_bb
nested_dictと、およびとのlist_b固定ペア(つまり、それぞれタプルキーの1番目と3番目の要素)が与えられた場合、その一部を形成する要素に基づいて、サブディクショナリに対してソートされたイテレータを取得したいと思います。タプルキー、つまり、このイテレータを使用することで、次のように返されたサブディクショナリを反復処理できます。aclist_b
nested_dict[(a, b_1, c)], nested_dict[(a, b_2, c)], nested_dict[(a, b_3, c)], ...
ここでb_1 < b_2 < b_3 ...、それぞれb_iがlist_b
私はこの線に沿って考えています:
def sorted_dict_itr (nested_dict, list_b, a, c):
return (nested_dict[(a, b, c)] for b in sorted(list_b))
しかし、これは常にイテレータをnested_dict[(a, b, c)]次の順序で返しますbか?もしそうなら、同じことを達成するためのより効率的な方法(より高速なコードを意味する)はありますか?