Python

[Python] 파이썬 리스트 컴프리헨션(List Comprehension) 사용법과 예제

sécurité de l'information 2023. 10. 1.
[Python] 파이썬 리스트 컴프리헨션(List Comprehension) 사용법과 예제

안녕하세요! 오늘은 파이썬에서 매우 유용한 기능 중 하나인 리스트 컴프리헨션(List Comprehension)에 대해 알아보겠습니다. 리스트 컴프리헨션은 파이썬에서 리스트를 생성하고 조작하는 간결하고 효율적인 방법을 제공합니다.

1. 리스트 컴프리헨션이란?

리스트 컴프리헨션은 기존의 for 반복문과 조건문을 사용하여 리스트를 생성하는 방법입니다. 이를 사용하면 한 줄로 간결하게 리스트를 생성할 수 있습니다. 예를 들어, 1부터 10까지의 숫자 중에서 짝수만을 포함하는 리스트를 생성하려면 다음과 같이 할 수 있습니다:

even_numbers = [x for x in range(1, 11) if x % 2 == 0]

위의 코드에서는 for 반복문을 사용하여 1부터 10까지의 숫자를 순회하고, if 조건문을 사용하여 짝수인지 확인합니다. 조건을 만족하는 숫자만 리스트에 추가됩니다. 결과적으로 even_numbers 리스트에는 [2, 4, 6, 8, 10]이 저장됩니다.

2. 리스트 컴프리헨션의 장점

리스트 컴프리헨션은 기존의 방식보다 간결하고 가독성이 좋습니다. 한 줄로 리스트를 생성할 수 있기 때문에 코드의 길이를 줄일 수 있습니다. 또한, 리스트 컴프리헨션은 성능 면에서도 우수합니다. 파이썬은 내부적으로 최적화되어 있어서 리스트 컴프리헨션을 사용하는 것이 더 효율적입니다.

3. 리스트 컴프리헨션의 다양한 사용법

리스트 컴프리헨션은 다양한 방식으로 사용할 수 있습니다. 예를 들어, 문자열 리스트에서 길이가 5 이상인 문자열만을 포함하는 리스트를 생성하려면 다음과 같이 할 수 있습니다:

long_strings = [s for s in string_list if len(s) >= 5]

위의 코드에서는 문자열 리스트인 string_list를 순회하고, if 조건문을 사용하여 길이가 5 이상인 문자열만을 리스트에 추가합니다. 결과적으로 long_strings 리스트에는 길이가 5 이상인 문자열만이 저장됩니다.

또 다른 예로, 리스트 컴프리헨션을 중첩하여 2차원 리스트를 생성할 수도 있습니다. 예를 들어, 3x3 크기의 2차원 리스트를 생성하려면 다음과 같이 할 수 있습니다:

matrix = [[0 for _ in range(3)] for _ in range(3)]

위의 코드에서는 for 반복문을 중첩하여 3x3 크기의 2차원 리스트를 생성합니다. 각 요소는 0으로 초기화됩니다. 결과적으로 matrix 리스트에는 [[0, 0, 0], [0, 0, 0], [0, 0, 0]]이 저장됩니다.

4. 리스트 컴프리헨션의 한계

리스트 컴프리헨션은 간결하고 효율적이지만, 너무 복잡한 로직을 표현하기에는 제한적입니다. 복잡한 조건문이나 중첩된 반복문을 사용해야 하는 경우에는 가독성이 떨어질 수 있습니다. 이럴 때는 일반적인 for 반복문을 사용하는 것이 더 좋을 수 있습니다.

5. 리스트 컴프리헨션 vs. 일반적인 방식

리스트 컴프리헨션은 기존의 방식보다 간결하고 가독성이 좋지만, 모든 상황에서 사용하기에는 적합하지 않을 수 있습니다. 각각의 상황에 맞게 리스트 컴프리헨션과 일반적인 방식을 선택하는 것이 중요합니다. 가독성과 성능을 고려하여 적절한 방법을 선택해야 합니다.

6. 결론

리스트 컴프리헨션은 파이썬에서 매우 유용한 기능 중 하나입니다. 간결하고 효율적인 방식으로 리스트를 생성하고 조작할 수 있습니다. 하지만, 모든 상황에서 사용하기에는 적합하지 않을 수 있으므로 상황에 맞게 적절한 방법을 선택해야 합니다.

이상으로 '[Python] 파이썬 리스트 컴프리헨션(List Comprehension) 사용법과 예제'에 대한 게시글을 마치겠습니다. 감사합니다!

댓글

💲 추천 글