컴프리헨션의 다중 루프 사용
루프를 여러 수준으로 내포 허용
matrix = [[1,2,3], [4,5,6], [7,8,9]]
flat = [x for row in matrix for x in row]
print(flat)
#[1,2,3,4,5,6,7,8,9]
squared = [[x**2 for x in row] for row in matrix]
print(squared)
#[[1,4,9],[16,25,36],[49,64,81]]
3개 이상 쓸 경우
가독성이 너무 떨어진다.
파라미터의 추가로 혼동 모델의 혼동 가능성이 높다
#리스트컴프리헨션 사용
my_lists = [[1,2,3],[4,5,6]]
flat = [ x for sublist1 in my_lists
for sublist2 in sublist1
for x in sublist2]
#사용X
flat = []
for sublist1 in my_lists:
for sublist2 in sublist1:
flat.extend(sublist2)
대책
도우미함수를 활용해라