ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TIL. 5 list 함수 응용편_3
    TIL 2020. 10. 13. 23:12
    728x90

    ## 리스트 컴프리헨션 (list comprehension) //

     

    ## 파이썬의 특이한 점은 리스트 안에 for 반복문 if 조건문을 사용할 수 있다는 점이다.

    ## 리스트 안에 for 문, if문 등으로 지정하여 리스트를 생성하는 것을 리스트 컴프리헨션이라 한다.

    ## 리스트 내포, 리스트 내장, 리슽트 축약, 리스트 해석 이라는 단어로도 사용된다.

    ## 컴프리헨션은 어떤 것을 잡아서 담아둔다는 뜻으로 이해하면 빠르다.

     

    a = [i for i in range(10)] 

     

    :: #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    b = list(i for i in range(10)) 

    :: # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    ## [식 for 변수 in 리스트]   _방법 1

    # list(식 for 변수 in 리스트)   _방법2

    ### 참고 | 대괄호와 list() 리스트 표현식

    ### 리스트 표현식은 [식 for 변수 in 리스트]처럼 [ ](대괄호)로 만들 수도 있고, 

    ### list(식 for 변수 in 리스트)처럼 list로 만들 수도 있습니다. 둘 중에 성능은 대괄호 방식이 더 좋다.

    ### 특히 list 방식은 C 언어 스타일이라 대괄호 방식이 파이썬 다운 코드입니다. 

    ### 따라서 리스트 표현식은 대괄호 방식을 사용하는 것이 좋다

    list는 리스트 표현식을 만들 수 있다는 정도만 알아 두자.


    c = [i+5 for i in range(10)]

    :: #[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

     

    # i+5라는 식으로 리스트 생성 가능


    ## 리스트 컴프리헨션에서 if 조건문 사용하기

     

    d = [i for i in range(10if i % 2 == 0]

    :: # [0, 2, 4, 6, 8]

     

    ## [식 for 변수 in 리스트 if 조건식] _방법1

    # list(식 for 변수 in 리스트 if 조건식) _방법2


    ## for문, if문 여러개 사용하기

    e = [i * j for j in range(210for i in range(110)]

    ::#[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]

     

    f = [i * j for j in range(210)

               for i in range(110)]

    :: 위와 동일

    ## 리스트 컴프리헨션에서는 for가 여러개 일때 처리 순서는 뒤에서 앞으로 순서이다.

    ## 먼저 i 의 range값이 먼저 오면, 그다음 j의 range값이 와서 식을 완성하는 순서이다.

    728x90
Designed by Tistory.