IT이야기

Python의 dritt.keys()는 왜 집합이 아닌 목록을 반환하는가?

cyworld 2022. 3. 10. 22:23
반응형

Python의 dritt.keys()는 왜 집합이 아닌 목록을 반환하는가?

파이썬의 키 메서드가 리스트 대신 세트를 돌려줄 줄 알았을 거야.해시맵의 키가 주는 보증의 종류와 가장 유사하기 때문이다.구체적으로는 세트처럼 독특하고 분류되지 않는다.그러나 이 방법은 다음과 같은 목록을 반환한다.

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

이것은 단지 Python API의 실수인가 아니면 내가 놓친 다른 이유가 있는가?

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

다음 반환 형식에 유의하십시오.dict.keys()Python 3에서 변경됨: 함수는 이제 리스트가 아닌 "set-like" 보기를 반환한다.

세트 유사 뷰의 경우 추상 기본 클래스에 대해 정의된 모든 작업collections.abc.Set사용 가능(예:==,<또는^).

왜냐하면 순서가 보장되기 때문이다.

Python 3.7.0에서 받아쓰기 개체의 삽입 순서 보존 특성이 Python 언어 규격의 공식 부분으로 선언되었다.그러므로 의지할 수 있다.

파이톤 3.6에서는 cpython을 사용하면 주문된다.

이전 버전에서는 아마도 모두가 3.7을 희망하고 있었을 것이다.

참조URL: https://stackoverflow.com/questions/13886129/why-does-pythons-dict-keys-return-a-list-and-not-a-set

반응형