1. 要件
それ自体が別の辞書のサブセットである辞書を作成したいと考えています。2. 解決策
これは、辞書導出を使用して簡単に解決できます。
prices={ 'a':1.1, 'b':2.2, 'c':3.3, 'd':4.4, 'e':5.5 } p1={key:value for key ,value in prices.items() if value>3} print(p1) names={'a','b'} p2={key:value for key,value in prices.items() if key in names} print(p2)
結果:
{'c': 3.3, 'd': 4.4, 'e': 5.5} {'a': 1.1, 'b': 2.2}
3. 分析
辞書導出によって解決できる問題のほとんどは、タプルを作成することによっても解決できます。次に、それらは dict() 関数に渡されて完了します。例:
#结果为:{'c': 3.3, 'd': 4.4, 'e': 5.5} p3=dict((key,value) for key,value in prices.items() if value>3)
しかし、辞書導出メソッドはより明確で、実際にははるかに高速に実行されます。 (最初の効率はほぼ 2 倍速くなります)
同じことを同時に完了するために複数の方法がある場合があります。たとえば、2 番目の例は次のように書き換えることもできます。
#结果为:{'b': 2.2, 'a': 1.1} p4={key:prices[key] for key in prices.keys() & names}
ただし、テストの結果、この解決策は最初の解決策よりもほぼ 1.6 倍遅いことが示されています。したがって、同じ問題に対して複数の解決策がある場合は、ちょっとしたテストを行って、かかった時間を調べることができます。
以上がPython は辞書からサブセットを抽出するメソッドを実装します (コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。