728x90
반응형

List Comprehension

List Comprehensino (이하, 리스트 컴프리헨션)
List 는 파이썬의 리스트를 Comprehensions 의 사전적 의미는 이해 또는 이해력 이라고 해석해볼 수 있다.
즉, 리스트 이해, 리스트 축약, 리스트 해석, 리스트 표현식 등의 표현으로 주로 사용된다고 한다.

 

리스트 컴프리헨션)에 대해서 이해하기 전에 파이썬의 리스트에 대해서 이해할 필요가 있다.
파이썬의 리스트가 특이한 점은 리스트 안에 반복문과 조건문을 사용할 수 있다는 점이다.
리스트 컴프리헨션은 파이썬의 반복문과 조건문을 보다 쉽게 사용해서 리스트를 만드는 방법을 말한다.

 

 

이렇게 이해한 내용을 토대로 예시를 들어가면서 정리해봤다.

 

1) 반복문을 통해 리스트 생성

반복문을 통해 리스트 컴프리헨션의 동작 순서는 다음과 같다고 한다.

출처 - https://dojang.io/mod/page/view.php?id=2285

숫자를 생성 후에 하나씩 꺼내서 리스트로 만드는 과정이다.
이와 같은 과정을 직접 작성해보며 확인해보았다.

 

- 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) 반복문과 조건문을 통해 리스트 생성

반복문과 조건문을 사용하게 되면 다음과 같이 동작한다고 한다.

출처 - https://dojang.io/mod/page/view.php?id=2285

숫자를 생성하고 조건에 맞는 숫자만 가져와서 리스트르 생성한다.

 

- 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) 여러개의 반복문과 조건문 사용해서 리스트 생성

여러개의 반복문과 조건문을 사용하면 다음과 같이 동작한다고 한다.

출처 - https://dojang.io/mod/page/view.php?id=2285

뒤에서 부터 순서대로 반복문을 통해 리스트를 생성하는 것을 알 수 있다.
조건문을 사용할 때에도 마찬가지로 위에서 사용한 것과 같이 하면 된다.

 

- 여러개의 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 

 

파이썬 코딩 도장: 22.5 리스트 표현식 사용하기

파이썬의 리스트가 특이한 점은 리스트 안에 for 반복문과 if 조건문을 사용할 수 있다는 점입니다. 이렇게 리스트 안에 식, for 반복문, if 조건문 등을 지정하여 리스트를 생성하는 것을 리스트

dojang.io

https://mingrammer.com/introduce-comprehension-of-python/

 

파이썬의 Comprehension 소개

Comprehension이란 iterable한 오브젝트를 생성하기 위한 방법중 하나로 파이썬에서 사용할 수 있는 유용한 기능중 하나이다. 파이썬에는 다음

mingrammer.com

https://shoark7.github.io/programming/python/about-list-comprehension-python

 

[Python] list comprehension에 대한 즐거운 이해

리스트를 생성하는 Python만의 독특한 문법인 list comprehension에 대해 살펴보고 다양한 예제를 만들어봅니다. 그리고 set, tuple, dict와 같은 다른 내장 자료구조에도 적용해봅니다.

shoark7.github.io

https://velog.io/@mttw2820/List-Comprehension-%EB%AC%B8%EB%B2%95-%EC%A0%95%EB%A6%AC

 

List Comprehension 문법 정리

List Comprehension 문법 정리 📜

velog.io

 

728x90
반응형
복사했습니다!