60
私はPythonのkeysメソッドがリストの代わりにセットを返すと期待していました。ハッシュマップのキーが与える保証の種類に最もよく似ているからです。具体的には、それらはユニークであり、セットのようにソートされません。しかし、このメソッドはリストを返します:なぜPythonのdict.keys()はリストではなく、セットを返しますか?
>>> d = {}
>>> d.keys().__class__
<type 'list'>
これはPython APIの間違いですか、それとも私が行方不明の他の理由がありますか?
リスト/セット/などの代わりにビューです。すべてのキーをコピーする必要はほとんどないからです。 – delnan
これらのビューは 'set()'として扱うことができます!これは 'dict.keys()| set() '操作を実行します。 Py3 rocks :) – yota
もしあなたがPy2で動かないなら、 'dict.viewkeys()'を呼び出して、 '?'、 '&'というセット操作でそれを使うことで同じことができます – Tobia