# 2차원 리스트 평탄화
# 리스트가 중첩되어 있을 때 중첩을 제거하는 처리를 리스트 평탄화(list flatten)라고 한다
# ex) [1, 2, [3, 4], 5, [6, 7], [8, 9]] -> [1, 2, 3, 4, 5, 6, 7, 8, 9]
#list_a = [1, 2, [3, 4], 5, [6, 7], [8, 9]]
#
#for i in range(0, len(list_a)):
# if type(list_a[i]) == list:
# for j in range(0, len(list_a[i])):
# list_a.insert(int(list_a[i]), list_a[i][j])
# del list_a[i]
#
#print(f"[1, 2, [3, 4], 5, [6, 7], [8, 9]]를 평탄화 하면\\n{list_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}입니다")
리스트 하나를 가지고 고치려는 접근 보다는 리스트 하나를 새로 만들고 그 안에 요소들을 걸러 넣는 방식을 생각해 보자. 항상 발상의 전환이 필요하다!!!