この記事では主にPythonでのdefaultdictとlambda式の使い方を紹介しますので、必要な方は参考にしてください。参考のために皆さんと共有してください。詳細は次のとおりです:
チュートリアルから、defaultdict がクラスであることがわかりましたが、Python 2.7.6 を使用するコンピューターで使用すると、このクラスが存在しないことがわかりました。ドキュメントを検索しましたが見つからなかったので、これは Python 3.X に限定されているのかもしれないと当然のことと考えました。このチュートリアルは Python 3.X に基づいているためです。その後、Python 3.X を搭載したコンピューターに変更しましたが、依然として問題が発生しました。
インターネットに目を向けると、このクラスが実際には collections モジュールのクラスであることがわかりました。学習のためにオンライン環境をなくすのは難しそうです!
このクラスは dict のサブクラスであり、メソッドをオーバーライドしてイベント変数を追加します。インスタンス化中に、最初のパラメータがdefault_factoryの初期化関数に提供されます。このパラメータは型または関数になります。実際、型は基本的にファクトリ関数です。ただし、このメソッドを使用して定数を渡したい場合もあります。この場合、定数関数を別途設計するか、ラムダ式を直接使用する必要があります。
まず次のデモを見てください:
>>> fromcollections import defaultdict >>> c1 =defaultdict(int) >>>c1.get(123) >>>c1.get('abc') >>> defConst(): return 23 >>> c2 =defaultdict(Const) >>>c2.get(123) >>> c2 defaultdict(<functionConst at 0x000001D7E26F58C8>, {}) >>>c2[123] 23 >>>c2['abc'] 23 >>>c1[123] 0
上記からわかるように、このメソッドは辞書オブジェクトに存在しないキーにデフォルト値を自動的に与えることができます。上記のメソッドを使用すると、値が定数であることが自然にわかりますが、ラムダを使用するとコードをより簡潔にすることができます:
>>> c3 =defaultdict(lambda :123) >>>c3[12] 123
最近の使用シナリオでは、このメソッドによりコードがはるかに単純になります。慣れればコードの読みやすさには影響しません。
関連する推奨事項:
Pythonのdefaultdictモジュールとnamedtupleモジュールの簡単なガイド以上がPython でのdefaultdict とラムダ式の使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。