ホームページ  >  記事  >  バックエンド開発  >  Python でのdefaultdict とラムダ式の使用法

Python でのdefaultdict とラムダ式の使用法

不言
不言オリジナル
2018-04-09 14:50:233061ブラウズ

この記事では主に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[&#39;abc&#39;]
23
>>>c1[123]
0

上記からわかるように、このメソッドは辞書オブジェクトに存在しないキーにデフォルト値を自動的に与えることができます。上記のメソッドを使用すると、値が定数であることが自然にわかりますが、ラムダを使用するとコードをより簡潔にすることができます:

>>> c3 =defaultdict(lambda :123)
>>>c3[12]
123

最近の使用シナリオでは、このメソッドによりコードがはるかに単純になります。慣れればコードの読みやすさには影響しません。

関連する推奨事項:

Pythonのdefaultdictモジュールとnamedtupleモジュールの簡単なガイド


以上がPython でのdefaultdict とラムダ式の使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。