2017-05-11 5 views
3

Python3에서 사전 키가 속해 있는지 확인하려면 어떤 유형을 사용해야합니까?isinstance() check에 대한 dict_keys에 대한 명시적인 python3 유형은 무엇입니까?

>>> d = {1 : 2} 
>>> type(d.keys()) 
<class 'dict_keys'> 

그래서 자연스럽게이 시도 :

내가 isinstance에 대한 명시 적 dict_keys 번째 인수의 장소에 배치해야합니까
>>> isinstance(d.keys(), dict_keys) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'dict_keys' is not defined 

?를

(이것은 사전 키의 형태를 취할 수있는 알려지지 않은 입력 변수를 처리 할 때 유용하며 list(d.keys())을 사용하여 목록으로 변환 할 수 있음 (Python2 동작 복구 중)이 경우에는 옵션이 아닙니다.)

+0

값이나 변수가 사전 키에 있는지 확인 하시겠습니까? 다음과 같이 해보십시오 :'''''>>> d = {1 : 2} >>> d : print ("1은 키"입니다)''' – arsho

답변

3

당신은 collections.abc.KeysView 사용할 수 있습니다

In [19]: isinstance(d.keys(), collections.abc.KeysView) 
Out[19]: True 

collections.abc 모듈 이 클래스는 특정 인터페이스

0123를 제공하는지 여부를 테스트하는 데 사용할 수있는 추상 기본 클래스를 제공합니다
+0

파이썬 3.6.3에서'instanceof d.keys(), collections.KeysView)'(abc 없음) – MarkNS