리스트 평탄화 : 리스트가 중첩되어 있을 때 중첩을 제거하는 처리
중첩 리스트를 입력했을 때 다음과 같이 출력되는 프로그램 구현
리스트 평탄화를 할 때는 '요소가 일반 요소인지 리스트인지 확인'하는 처리가 필요함.
type( ) 함수 사용 예시
if type(대상) == list:
print("대상은 리스트입니다!")
lis = [1,2,[3,4],5,[6,7],[8,9]]
lis_a =[]
for i in range(len(lis)):
if type(lis[i]) != list:
lis_a[i] = lis[i]
elif type(lis[i]) == list:
for j in range(lis[i]):
lis_a[i] = lis[i+j]
print(f"{lis}를 평탄화하면\n{lis_a}입니다")
오류 떴다.
뭐가 틀리고 뭐가 맞는 건지 모르겠다...
a = [1,2,[3,4],5,[6,7],[8,9]]
output =[]
for i in a:
if type(i) == list:
for j in i:
output.append(j)
else:
output.append(i)
print(f"{a}를 평탄화하면")
print(f"{output}입니다")
내가 문제 해석을 너무 어렵게 했나보다.
for문 안에 if문으로 요소의 자료형을 확인하는 구조는 맞았지만
output리스트에 요소를 차례로 넣는 방법을 몰랐다.
append( ) 함수 : 리스트 위에 요소를 추가하는 함수
리스트.append(추가할 요소)