ProgramingTip

목록의 요소가 목록인지 확인하는 방법 (Python에서)?

bestdevel 2020. 12. 3. 08:15
반응형

목록의 요소가 목록인지 확인하는 방법 (Python에서)?


다음 목록이있는 경우 :

list = ['UMM', 'Uma', ['Ulaster','Ulter']]

목록의 요소 자체가 목록인지 확인 해야하는 경우 다음 코드에서 aValidList무엇으로 바꿀 수 있습니까?

for e in list:
    if e == aValidList:
        return True

사용할 특별한 수입품이 있습니까? 변수 / 요소가 목록인지 확인하는 가장 좋은 방법이 있습니까?


사용 :isinstance

if isinstance(e, list):

전달가 목록인지 튜플인지 확인 여러 클래스를 isinstance다음으로 전달하십시오 .

if isinstance(e, (list, tuple)):

  1. list항목이 갖기를 원하는 특정 속성을 계산하십시오 . 색인을 생성 할 수 있습니까? 가능합니까? .append()이 방법 필요 합니까?

  2. collections모듈 에서 특정 유형을 설명하는 추상 기본 클래스를 찾으십시오 .

  3. 사용 :isinstance

    isinstance(x, collections.MutableSequence)
    

"왜 그냥 사용하지 type(x) == list않습니까?"라고 물을 수 있습니다. 그렇게 될 확률. 목록처럼 보이는 것을 지원하지 않습니다. 그리고 방식 사고 방식의 일부는 오리 타이핑입니다 .

나는 오리처럼 걷다가 오리처럼 헤엄 치고 오리처럼 꽥꽥 거리는 새를 봐, 나는 그 새를 오리라고 부른다

즉, 객체가 list의 일 필요가 없으며 필요한 메서드가 있어야합니다. collections모듈은 Java 인터페이스와 약간의 기본 추상 기본 클래스를 제공합니다. collections.Sequence예를 들어 의 인스턴스 인 모든 유형은 인덱싱을 지원합니다.


찾고있는 표현은 다음과 가변합니다.

...
return any( isinstance(e, list) for e in my_list )

테스트 :

>>> my_list = [1,2]
>>> any( isinstance(e, list) for e in my_list )
False
>>> my_list = [1,2, [3,4,5]]
>>> any( isinstance(e, list) for e in my_list )
True
>>> 

아마도 더 많은 인 방법은 다음과 같을 것입니다.

if type(e) is list:
    print('Found a list element inside the list') 

참고 URL : https://stackoverflow.com/questions/9759930/how-to-check-if-an-element-of-a-list-is-a-list-in-python

반응형