List Comprehension
List Comprehensino (이하, 리스트 컴프리헨션)
List 는 파이썬의 리스트를 Comprehensions 의 사전적 의미는 이해 또는 이해력 이라고 해석해볼 수 있다.
즉, 리스트 이해, 리스트 축약, 리스트 해석, 리스트 표현식 등의 표현으로 주로 사용된다고 한다.
리스트 컴프리헨션)에 대해서 이해하기 전에 파이썬의 리스트에 대해서 이해할 필요가 있다.
파이썬의 리스트가 특이한 점은 리스트 안에 반복문과 조건문을 사용할 수 있다는 점이다.
리스트 컴프리헨션은 파이썬의 반복문과 조건문을 보다 쉽게 사용해서 리스트를 만드는 방법을 말한다.
이렇게 이해한 내용을 토대로 예시를 들어가면서 정리해봤다.
1) 반복문을 통해 리스트 생성
반복문을 통해 리스트 컴프리헨션의 동작 순서는 다음과 같다고 한다.
숫자를 생성 후에 하나씩 꺼내서 리스트로 만드는 과정이다.
이와 같은 과정을 직접 작성해보며 확인해보았다.
- for 반복문을 사용해서 리스트 생성
a = []
for i in range(0, 10):
a.append(i)
print(a)
# 결과
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- 리스트 컴프리헨션을 사용해서 리스트 생성
a = []
a = [i for i in range(0, 10)]
print(a)
# 결과
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
이렇게 반복문을 한줄로 요약해서 쉽게 리스트를 만들어볼 수 있다.
2) 반복문과 조건문을 통해 리스트 생성
반복문과 조건문을 사용하게 되면 다음과 같이 동작한다고 한다.
숫자를 생성하고 조건에 맞는 숫자만 가져와서 리스트르 생성한다.
- for 반복문과 if 조건문을 사용해서 리스트 생성
a = []
for i in range(0, 10):
if i % 2 == 0:
a.append(i)
print(a)
# 결과
[0, 2, 4, 6, 8]
- 리스트 컴프리헨션을 사용해서 리스트 생성
a = []
a = [i for i in range(0, 10) if i % 2 == 0]
print(a)
# 결과
[0, 2, 4, 6, 8]
3) 여러개의 반복문과 조건문 사용해서 리스트 생성
여러개의 반복문과 조건문을 사용하면 다음과 같이 동작한다고 한다.
뒤에서 부터 순서대로 반복문을 통해 리스트를 생성하는 것을 알 수 있다.
조건문을 사용할 때에도 마찬가지로 위에서 사용한 것과 같이 하면 된다.
- 여러개의 for 반복문과 if 조건문을 사용해서 리스트 생성
a = []
for i in range(0, 5):
for j in range(0, 3):
if i % 2 == 0:
a.append([i, j])
print(a)
# 결과
[[0, 0], [0, 1], [0, 2], [2, 0], [2, 1], [2, 2], [4, 0], [4, 1], [4, 2]]
- 리스트 컴프리헨션을 사용해서 리스트 생성
a = []
a = [[i,j] for j in range(0, 3) for i in range(0, 5) if i % 2 == 0]
print(a)
# 결과
[[0, 0], [2, 0], [4, 0], [0, 1], [2, 1], [4, 1], [0, 2], [2, 2], [4, 2]]
이 외에도 다양한 방법을 통해 활용해볼 수 있다고 한다.
마지막으로 이 문법을 잘 활용할 수 있다면 정말 유용하게 사용할 수 있을 것이라고 생각하고
지금은 간단하게 무엇인지 이해하려고 정리하고 있지만
추후 아래의 참고 사이트를 통해 더 깊게 이해해보는 시간도 필요할 것 같다.
- 참고 사이트
https://dojang.io/mod/page/view.php?id=2285
https://mingrammer.com/introduce-comprehension-of-python/
https://shoark7.github.io/programming/python/about-list-comprehension-python
https://velog.io/@mttw2820/List-Comprehension-%EB%AC%B8%EB%B2%95-%EC%A0%95%EB%A6%AC
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python 리스트(list) 와 튜플(tuple) 의 차이점 (0) | 2023.01.12 |
---|---|
Python 파이썬 주요 특징 및 장점 (0) | 2023.01.12 |
Jupyter notebook - 500 : Internal Server Error (0) | 2022.12.25 |
파이썬 print() 함수 줄바꿈 없이 출력 (0) | 2022.12.19 |
Python 더하기, 빼기, 곱하기, 몫과 나머지 계산 (0) | 2022.10.29 |