본문 바로가기

파이썬 담아두기

element가 list인지 판단하기

반응형

List의 element가 List인지 판단하기


해답 : 파이썬에서 지원하는 isinstance() 함수를 이용하자.

사용법 : isinstance(값, 타입)  ==> ''이 '타입'에 해당하는 요소인지 확인.


ex) 리스트 요소들이 차지하는 각각의 길이(size)를 구하고 싶다.

len() 함수를 이요하면 되지만, 2차원 리스트와 같은 경우에는 크기(size)가 제대로 구해지지 않음.

LIST = [ 'a', 'b', ['aaaa', 'bbbb'] ] 일 때 LIST 요소별로 len()을 해주면

'a' -> 1

'b' -> 1

['aaaa', 'bbbb'] -> (원하는 건 4(aaaa)+4(bbbb)='8' 이 나왔으면 하는데!)

이럴 때, instance() 함수를 이용하여 요소가 LIST인지 판별하여 계산을 달리 해주면 됨. 



[스크립트]

if __name__ == "__main__":

a = ["a","b"]

b = [[0 for col in range(10)] for row in range(5)] -----> 열10*행5인 리스트

LIST = a+[b]


for (index, value) in enumerate(LIST):

print (index, value)

if(isinstance(value, list)):

print "len : %d" % (len(value)*len(value[0])) --> 2차원 리스트 길이

else:

print "len : %d" % len(value)


[출력]

(0, 'a')

len : 1

(1, 'b')

len : 1

(2, [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])

len : 50








반응형

'파이썬 담아두기' 카테고리의 다른 글

파이썬 환경변수 설정  (0) 2018.08.10
파이썬 문자열 대소문자 변환  (0) 2018.01.23
파일 크기 구하기  (0) 2018.01.19
파이썬 이차원 배열 생성  (0) 2018.01.18
String을 hex형태로 변환하기  (0) 2018.01.18