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) 자료

댓글