(python) 리스트 컴프리헨션(List Comprehension)

2023. 4. 24. 20:56학습/python

프로그래머스 한줄코딩빌런 같은 사람을 보면 부럽기도하다.

또 남이 쓴 람다나 컴프리헨션 형태의 코드를 보면 이게 이렇게 된다고..? 싶기도 하다..

 

가독성 부분에서는 모르겠지만 떄로 실행속도가 향상 되는 경우가 있다고 하니 정리하며 다시 공부하도록 한다.

 

리스트 컴프리헨션(List Comprehension)

리스트 컴프리헨션은 파이썬의 강력한 기능 중 하나로, 기존의 리스트나 iterable(반복가능)한 객체(예: range)를 사용해 새로운 리스트를 생성하는 간결하고 효율적인 방법이다.
기본적으로 리스트 컴프리헨션은 특정 표현식을 적용한 결과를 기반으로 한 리스트를 만들어내며, 선택적으로 조건을 부여하여 원하는 요소만 포함시킬 수 있다.

 

[expression for item in iterable if condition]
  1. expression
      리스트의 각 요소에 적용할 표현식
  2. item
    iterable한 객체의 각 요소
  3. iterable
    순회 가능한 객체로, 새로운 리스트를 생성할 때 사용
  4. condition
    각 요소가 새로운 리스트에 포함되기 전에 만족해야 하는 조건

.# 0부터 9까지의 제곱 값을 포함하는 리스트

squared_numbers = []
for i in range(10):
    squared_numbers.append(i**2)
print(squared_numbers)
# list comprehension 을 적용
squared_numbers = [x**2 for x in range(10)]
print(squared_numbers)  
# 출력: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

 

 

# 0부터 9까지의 수 중 짝수만 제곱하여 포함하는 리스트

squared_even = []
for i in range(10):
    if i % 2 == 0:
        squared_even.append(i**2)
print(squared_even)
even_squared_numbers = [x**2 for x in range(10) if x % 2 == 0]
print(even_squared_numbers)  
# 출력: [0, 4, 16, 36, 64]

condition을 줘 구구 중 짝수만을 제곱하여 리스트에 넣음

 

 

정리

list comprehension을 사용하면 코드를 더 간결하고 읽기 쉽다.

하지만 복잡한 로직의 경우, 가독성을 위해 전통적인 구문을 사용하는 것이 좋을 수 도 있다!

728x90