반응형
파이썬에서 리스트 함축(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. 요약
리스트 함축은 다음과 같은 장점을 제공합니다:
- 코드가 간결하고 읽기 쉽습니다.
- 효율적으로 리스트를 생성할 수 있습니다.
- 조건을 포함하여 필터링된 리스트를 쉽게 만들 수 있습니다.
이러한 리스트 함축 기법을 통해 파이썬 코드의 가독성과 효율성을 높일 수 있습니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] 리스트를 인수로 전단 후 사용하기 (0) | 2024.07.05 |
---|---|
[ Python ] 파이썬의 딕셔너리(dictionary)와 세트(set) comprehension (0) | 2024.07.05 |
[ Python ] reduce()와 lambda 사용하기 (1) | 2024.07.04 |
[ Python ] reduce()와 일반 함수 사용하기 (0) | 2024.07.04 |
[ Python ] 리스트에서 데이터 가져오기 (0) | 2024.07.04 |