-
TIL. 5 list 함수 응용편_3TIL 2020. 10. 13. 23:12728x90
## 리스트 컴프리헨션 (list comprehension) //
## 파이썬의 특이한 점은 리스트 안에 for 반복문 과 if 조건문을 사용할 수 있다는 점이다.
## 리스트 안에 for 문, if문 등으로 지정하여 리스트를 생성하는 것을 리스트 컴프리헨션이라 한다.
## 리스트 내포, 리스트 내장, 리슽트 축약, 리스트 해석 이라는 단어로도 사용된다.
## 컴프리헨션은 어떤 것을 잡아서 담아둔다는 뜻으로 이해하면 빠르다.
a = [i for i in range(10)]
:: #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
b = list(i for i in range(10))
:: # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
## [식 for 변수 in 리스트] _방법 1
# list(식 for 변수 in 리스트) _방법2
### 참고 | 대괄호와 list() 리스트 표현식
### 리스트 표현식은 [식 for 변수 in 리스트]처럼 [ ](대괄호)로 만들 수도 있고,
### list(식 for 변수 in 리스트)처럼 list로 만들 수도 있습니다. 둘 중에 성능은 대괄호 방식이 더 좋다.
### 특히 list 방식은 C 언어 스타일이라 대괄호 방식이 파이썬 다운 코드입니다.
### 따라서 리스트 표현식은 대괄호 방식을 사용하는 것이 좋다.
list는 리스트 표현식을 만들 수 있다는 정도만 알아 두자.
c = [i+5 for i in range(10)]
:: #[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
# i+5라는 식으로 리스트 생성 가능
## 리스트 컴프리헨션에서 if 조건문 사용하기
d = [i for i in range(10) if i % 2 == 0]
:: # [0, 2, 4, 6, 8]
## [식 for 변수 in 리스트 if 조건식] _방법1
# list(식 for 변수 in 리스트 if 조건식) _방법2
## for문, if문 여러개 사용하기
e = [i * j for j in range(2, 10) for i in range(1, 10)]
::#[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]
f = [i * j for j in range(2, 10)
for i in range(1, 10)]
:: 위와 동일
## 리스트 컴프리헨션에서는 for가 여러개 일때 처리 순서는 뒤에서 앞으로 순서이다.
## 먼저 i 의 range값이 먼저 오면, 그다음 j의 range값이 와서 식을 완성하는 순서이다.
728x90'TIL' 카테고리의 다른 글
TIL.7 2차원 리스트_2 (0) 2020.10.15 TIL.6 2차원 list(행, 열, 표) (0) 2020.10.14 TIL.4+0.5 list 함수 응용편_2 (0) 2020.10.12 TIL.4 list 함수 응용편 (0) 2020.10.12 TIL.3 turtle graphics(터틀 그래픽스)를 이용한 도형 그리기 (0) 2020.10.11