본문 바로가기
코딩테스트-파이썬

리스트 컴프리헨션

by 시니성 2023. 7. 22.

리스트 컴프리헨션(List Comprehension)은 파이썬에서 리스트를 생성하는 간결하고 효율적인 방법 중 하나입니다.

리스트 컴프리헨션의 일반적인 형식은 다음과 같습니다:

[표현식 for 항목 in 반복 가능한 객체 if 조건]
  • 표현식: 각 항목에 대한 계산 또는 변환을 수행하는 표현식입니다.
  • 항목: 반복 가능한 객체에서 가져온 변수로, 리스트 컴프리헨션에서 각 요소를 순회합니다.
  • 반복 가능한 객체: 순회하고자 하는 리스트, 튜플, 문자열 등의 반복 가능한 객체입니다.
  • 조건 (옵션): 선택적인 조건으로, 조건을 만족하는 항목만 표현식에 포함시킵니다.

아래 예시를 통해 리스트 컴프리헨션을 자세히 설명하겠습니다:

1. 기본적인 리스트 컴프리헨션:

# 1부터 5까지의 숫자를 제곱하여 리스트 생성
squared_numbers = [x**2 for x in range(1, 6)]
# 출력: [1, 4, 9, 16, 25]

 

2. 조건을 포함하는 리스트 컴프리헨션:

# 1부터 10까지의 숫자 중에서 짝수만 제곱하여 리스트 생성
even_squared_numbers = [x**2 for x in range(1, 11) if x % 2 == 0]
print(even_squared_numbers)  # 출력: [4, 16, 36, 64, 100]

 

3. 문자열 리스트 컴프리헨션:

# 문자열 리스트에서 각 문자열의 길이를 구하여 리스트 생성
words = ["apple", "banana", "orange", "grape"]
word_lengths = [len(word) for word in words]
print(word_lengths)  # 출력: [5, 6, 6, 5]

 

4. 중첩 리스트 컴프리헨션:

# 2차원 리스트의 모든 요소를 하나의 리스트로 펼치기
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened_list = [element for row in matrix for element in row]
print(flattened_list)  # 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9]