제어_하위_식

매일 공부(ML)·2022년 6월 19일
0

이어드림

목록 보기
79/146

컴프리헨션 내부에 제어 하위 식을 세 개 이상 사용하지 말라

컴프리헨션의 다중 루프 사용

  • 루프를 여러 수준으로 내포 허용

    • 행렬로 정의된 원소들을 단일 리스트로 단순화
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]

  • 2단계 깊이로 구성된 입력 list구조 복제
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)

대책

도우미함수를 활용해라

profile
성장을 도울 아카이빙 블로그

0개의 댓글