[python] 파이썬의 dict.keys ()가 집합이 아닌 목록을 반환하는 이유는 무엇입니까?

파이썬의 키 메서드가 목록 대신 집합을 반환 할 것으로 예상했을 것입니다. 해시 맵의 키가 제공하는 보증의 종류와 가장 유사하기 때문입니다. 특히, 그것들은 세트처럼 고유하고 정렬되지 않습니다. 그러나이 메서드는 목록을 반환합니다.

>>> d = {}
>>> d.keys().__class__
<type 'list'>

이것은 Python API의 실수입니까 아니면 내가 놓친 다른 이유가 있습니까?



답변

한 가지 이유는 dict.keys()언어에 세트가 도입되기 이전에 있기 때문입니다 .

반환 유형은 dict.keys()Python 3에서 변경되었습니다. 이제 함수 는 목록이 아닌 “세트와 유사한” 보기를 반환 합니다.

집합 형 뷰의 경우 추상 기본 클래스에 대해 정의 된 모든 작업 collections.abc.Set을 사용할 수 있습니다 (예 ==: <, 또는 ^).


답변