List의 element가 List인지 판단하기
해답 : 파이썬에서 지원하는 isinstance() 함수를 이용하자.
사용법 : isinstance(값, 타입) ==> '값'이 '타입'에 해당하는 요소인지 확인.
ex) 리스트 요소들이 차지하는 각각의 길이(size)를 구하고 싶다.
len() 함수를 이요하면 되지만, 2차원 리스트와 같은 경우에는 크기(size)가 제대로 구해지지 않음.
LIST = [ 'a', 'b', ['aaaa', 'bbbb'] ] 일 때 LIST 요소별로 len()을 해주면
'a' -> 1
'b' -> 1
['aaaa', 'bbbb'] -> 2 (원하는 건 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 |