Pythonのkeysメソッドがリストではなくセットを返すことを期待していました。それはハッシュマップのキーが与える保証の種類に最もよく似ているからです。具体的には、それらは一意であり、セットのように並べ替えられていません。ただし、このメソッドはリストを返します。
>>> d = {}
>>> d.keys().__class__
<type 'list'>
これはPythonAPIの単なる間違いですか、それとも私が見逃している他の理由がありますか?
回答:
1つの理由はdict.keys()、言語へのセットの導入よりも前からあることです。
dict.keys()Python 3では戻り値の型が変更されていることに注意してください。関数はリストではなく「セットのような」ビューを返すようになりました。
セット様ビューに対して、抽象基底クラスに対して定義された動作のすべてが
collections.abc.Set(例えば、利用可能である==、<または^)。
set()!として処理できます。dict.keys() | set()操作を許可します。PY3は:)岩
dict.viewkeys()し、集合演算でそれを使用して|、&...