토막코딩/Python

Python의 List Comprehension: 간결하고 빠른 리스트 생성 기법

컴곰 2023. 9. 26. 07:44

Python의 List Comprehension: 간결하고 빠른 리스트 생성 기법


Python에서는 리스트 생성을 위한 강력하면서도 간결한 문법, 바로 List Comprehension을 제공합니다. 이 기법을 활용하면 한 줄의 코드로 복잡한 리스트 연산을 수행할 수 있어 코드의 가독성과 효율성이 크게 향상됩니다.

List Comprehension은 기본적으로 for 문과 if 문을 사용하여 리스트 내에서 표현식을 계산하고 그 결과를 새로운 리스트에 저장하는 방식으로 동작합니다.

예시:

  1. 0부터 9까지의 숫자 중에서 짝수만 포함하는 리스트 생성:
evens = [x for x in range(10) if x % 2 == 0]
print(evens)  # 출력: [0, 2, 4, 6, 8]
  1. 두 개의 리스트의 요소를 조합하여 새로운 리스트 생성:
a = [1, 2, 3]
b = ['a', 'b', 'c']
combined = [(num, char) for num in a for char in b]
print(combined)  # 출력: [(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), ...]

List Comprehension은 단순히 리스트 생성에만 국한되지 않습니다. 사실, setdictionary 등 다른 자료 구조에 대한 Comprehension도 지원됩니다.

예를 들어, 딕셔너리 Comprehension은 아래와 같이 사용될 수 있습니다:

squared = {x: x*x for x in (2, 3, 4)}
print(squared)  # 출력: {2: 4, 3: 9, 4: 16}

List Comprehension은 코드를 더 간결하고 표현력 있게 만들어줍니다. 하지만 너무 복잡한 로직을 담아 넣게 되면, 오히려 코드의 가독성이 떨어질 수 있으므로 적절한 수준에서 사용하는 것이 좋습니다.