[Python] 파이썬 축약 구문

1. 파이썬 축약 구문

 

파이썬의 축약 구문은 반복문과 조건문을 사용하지 않고도 순회 가능한 객체(리스트, 집합, 딕셔너리 등)에서 특정 조건에 맞는 값을 간결하게 추출할 수 있는 문법이다. 축약 구문을 이해하기 위해서는 리스트, 집합, 딕셔너리에 대한 이해가 필요하다. 자세한 내용은 링크를 통해 확인 할 수 있다. 리스트[링크], 집합[링크], 딕셔너리[링크]

 

[expression for item in iterable if condition]

 

  • expression: 리스트의 각 요소를 변환하는 과정에서 사용되는 표현식 
  • item: 각 요소
  • iterable: 순회 가능한 객체 (리스트, 튜플, 문자열, 집합, 딕셔너리 등)
  • condition: 각 값에 대한 조건

 


2. 리스트 축약 구문

 

리스트에서는 다음과 같이 축약 구문을 사용할 수 있다. 아래 코드는 fruits 리스트에서 이름이 '사과'인 과일의 이름을 추출하여 apple 리스트에 저장하는 예제이다. 

 

>>> fruits = ['사과', '바나나', '토마토', '오렌지']
>>> apple = [fruit for fruit in fruits if fruit == '사과']
>>> print(apple)

 


3. 집합 축약 구문

 

집합에서는 다음과 같이 축약 구문을 사용할 수 있다. 집합 축약 구문은 리스트 축약 구문과 마찬가지로 표현식, 요소, 순회 가능한 객체, 조건을 갖는다. 그러나 리스트 축약 구문과는 달리 중복된 값을 허용하지 않는다.

 

{expression for item in iterable if condition}

 

아래 코드는 fruits 리스트에서 중복되지 않은 과일의 이름을 추출하여 unique_fruits 집합에 저장하는 예제이다. '사과'라는 값이 중복이므로 {'사과', '토마토', '오렌지', '바나나'} 집합이 생성된다.

 

>>> fruits = ['사과', '바나나', '토마토', '오렌지', '사과']
>>> unique_fruits = {fruit for fruit in fruits}
>>> print(unique_fruits)

{'사과', '토마토', '오렌지', '바나나'}

 


4. 딕셔너리 축약 구문

 

딕셔너리에서는 다음과 같이 축약 구문을 사용할 수 있다. 딕셔너리 축약 구문은 키 표현식과 값 표현식, 요소 , 순회가능한 객체, 조건을 가지고 있다. 이 구문을 사용하면 간결하게 딕셔너리를 생성할 수 있다.

 

{key_expression: value_expression for item in iterable if condition}

 

 

예를 들어, 다음과 같이 fruits 리스트에서 과일 이름과 가격을 포함하는 딕셔너리를 생성할 수 있다.

 

>>> fruits = ['사과', '바나나', '토마토', '오렌지']
>>> prices = [3000, 2500, 4000, 3500]
>>> fruit_prices = {fruit: price for fruit, price in zip(fruits, prices)}
>>> print(fruit_prices)
{'사과': 3000, '바나나': 2500, '토마토': 4000, '오렌지': 3500}

 


 

5. 축약 구문 사용시 주의 점 

 

  • 리스트 축약 구문을 사용할 때는 리스트의 길이와 표현식에 따라 메모리 사용량이 증가할 수 있으니 적절한 크기로 제한하는 것이 좋다.
  • 조건이 많이 포함된 경우에는 반복문을 사용하는 것이 더 가독성이 높고, 코드 유지보수성이 높아질 수 있다.
  • 축약 구문은 간결하게 데이터를 추출할 때 유용하지만, 데이터의 전처리, 가공, 분석 등의 작업에는 반복문을 사용하는 것이 더 적합할 수 있다.