2014-06-12 3 views
9

목록이 있습니다. 때로는 중첩되어 있으며, 때로는 그렇지 않습니다. 중첩되었는지 여부에 따라 연속성이 다릅니다. 이 목록이 중첩되어 있는지 어떻게 확인합니까? True 또는 False이 출력되어야합니다.목록이 중첩되어 있는지 Python이 확인합니다.

예 : ->False

[[1],[2],[3]] ->True

+1

"계속은 다릅니다"- 어떻게? 어쩌면 당신은 단지 (평평하게) 싶어요 (http://stackoverflow.com/questions/406121/flattening-a-shallow-list-in-python) 그것? – georg

+0

나는 그것을'dataframe'에 담았습니다. 플랫 또는 중첩 된 경우 수행하는 코드가 다릅니다. 중첩 목록을 병합하면 데이터 구조가 달라집니다. 구조를 유지해야합니다. – jason

답변

25

사용할 수 isinstanceany과 결합 generator expression

[1,2,3]. 그러면 원본 외부 목록에있는 list 개체의 인스턴스가 있는지 확인합니다. any은 (요소가리스트 인 경우이 경우)는 유효 요소에 도달 그래서 당신이 불필요하게 전체 외부 목록을 반복 결국하지 않는 한 즉시 True가 반환

In [11]: a = [1, 2, 3] 

In [12]: b = [[1], [2], [3]] 

In [13]: any(isinstance(i, list) for i in a) 
Out[13]: False 

In [14]: any(isinstance(i, list) for i in b) 
Out[14]: True 

참고.

관련 문제