ホームページ >バックエンド開発 >Python チュートリアル >Python は辞書からサブセットを抽出するメソッドを実装します (コード)

Python は辞書からサブセットを抽出するメソッドを実装します (コード)

不言
不言転載
2018-10-23 16:11:492062ブラウズ
この記事の内容はPythonで辞書からサブセットを抽出する方法(コード)に関するもので、一定の参考価値はありますが、困っている友人は参考にしていただければ幸いです。

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 サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。