comprehension

    오늘은 comprehension에 대해 공부했습니다.

    매번 for문을 돌려 조건에 해당되면 빈 배열에 추가하는 식으로 코드를 짜다가 빈 배열을 만들지 않고 바로 리스트 형태로 반환하는 문법을 찾았습니다. 하지만 간결한만큼 가독성이 떨어진다는 단점도 함께 공부했습니다.

    comprehension

    • list,dictionary,set, generator comprehension이 있다.
    • 코드가 간결하다
    • 반복문으로 빈 배열을 만들고 추가하는 것 보다 속도가 빠르다.
    • 새로운 배열을 만들때 유용하다.
    • 하지만 가독성이 떨어진다는 단점이 있다

    List Comprehension

    • 표현식과 제어문을 통해 특정한 값을 가진 리스트를 간결하게 생성하는 방법
    [표현식 for 변수 in iterable]
    [표현식 for 변수 in iterable if 조건식]

    예제

    • 1~3의 세제곱의 결과가 담긴 리스트를 만드시오
    # 빈 리스트로 만들고 해당 값을 append해서 리스트 만드는 방법
    result = []
    for number in range(1,4):
      result.append(number**3)
    print(result) # [1,8,27]
    
    # list comprehension
    [number**3 for number in range(1,4)]

    dictionary Comprehension

    • 표현식과 제어문을 통해 특정한 값을 가진 딕셔너리를 간결하게 생성하는 방법
    {key:value for 변수 in iterable}
    {key:value for 변수 in iterable if 조건문}

    예제

    • 1~3의 세제곱의 결과가 담긴 딕셔너리를 만드시오
    # 빈 딕셔너리로 만들고 해당 값을 append해서 딕셔너리 만드는 방법
    result = {}
    for number in range(1,4):
      result[number]=(number**3)
    print(result) # {1: 1, 2: 8, 3: 27}
    
    # list comprehension
    {number: number**3 for number in range(1,4)} # {1: 1, 2: 8, 3: 27}

    참고

    geonoo9.log
    멀티캠퍼스(hypergrowth) 자료

    댓글