본문 바로가기

언어/Python

[ Python ] 리스트 함축(List Comprehension) 사용하기

반응형

파이썬에서 리스트 함축(List Comprehension)은 리스트를 만드는 간결하고 효율적인 방법입니다.
이를 통해 기존 리스트를 기반으로 새로운 리스트를 생성할 수 있습니다.
리스트 함축은 일반적인 반복문을 사용하는 것보다 코드가 더 짧고 읽기 쉽게 만들어 줍니다.

1. 기본 구문

리스트 함축의 기본 구문은 다음과 같습니다:

[expression for item in iterable if condition]
  • expression: 각 요소에 대해 계산할 표현식.
  • item: 각 요소를 나타내는 변수.
  • iterable: 반복 가능한 객체 (예: 리스트, 튜플, 문자열 등).
  • condition (선택적): 각 요소에 대해 평가할 조건.

예제 1: 기본 리스트 함축

리스트의 각 요소에 대해 제곱을 계산하여 새로운 리스트를 생성하는 예제입니다.

numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)  # 출력: [1, 4, 9, 16, 25]

예제 2: 조건을 포함한 리스트 함축

리스트에서 짝수만 필터링하여 제곱을 계산하는 예제입니다.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_squares = [x**2 for x in numbers if x % 2 == 0]
print(even_squares)  # 출력: [4, 16, 36, 64, 100]

예제 3: 문자열 리스트 함축

문자열의 각 문자를 대문자로 변환하는 예제입니다.

text = "hello"
uppercase_letters = [char.upper() for char in text]
print(uppercase_letters)  # 출력: ['H', 'E', 'L', 'L', 'O']

예제 4: 중첩된 리스트 함축

2차원 리스트를 1차원 리스트로 평탄화하는 예제입니다.

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_list = [num for row in matrix for num in row]
print(flat_list)  # 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9]

예제 5: 여러 조건을 포함한 리스트 함축

리스트의 요소 중에서 5보다 크고 15보다 작은 값의 제곱을 계산하는 예제입니다.

numbers = [1, 3, 6, 9, 12, 15, 18, 21]
filtered_squares = [x**2 for x in numbers if x > 5 and x < 15]
print(filtered_squares)  # 출력: [36, 81, 144]

예제 6: 딕셔너리와 함께 사용하는 리스트 함축

리스트 함축을 사용하여 딕셔너리의 키와 값을 바꾸는 예제입니다.

original_dict = {'a': 1, 'b': 2, 'c': 3}
reversed_dict = {value: key for key, value in original_dict.items()}
print(reversed_dict)  # 출력: {1: 'a', 2: 'b', 3: 'c'}

예제 7: 튜플 리스트 함축

튜플의 리스트에서 각 튜플의 첫 번째 요소만 추출하는 예제입니다.

tuple_list = [(1, 'one'), (2, 'two'), (3, 'three')]
first_elements = [x[0] for x in tuple_list]
print(first_elements)  # 출력: [1, 2, 3]

2. 요약

리스트 함축은 다음과 같은 장점을 제공합니다:

  • 코드가 간결하고 읽기 쉽습니다.
  • 효율적으로 리스트를 생성할 수 있습니다.
  • 조건을 포함하여 필터링된 리스트를 쉽게 만들 수 있습니다.

이러한 리스트 함축 기법을 통해 파이썬 코드의 가독성과 효율성을 높일 수 있습니다.

반응형