파이썬은 다른 언어와 다르게 list 내에서 for문과 if 조건문을 한번에 사용할 수 있다.
이런걸 리스트 컴프리핸션(list comprehension)이라고 한다.
이를 이용하면 코드의 길이를 축약할 수 있다는 장점이 있다.
자세한 사용방법은 밑에 설명하도록 할 것이다.
- list와 for문만을 이용한 예시
-
for문 하나만 있을 때의 작성 형식 : [식 for 변수 in 리스트] 또는 list(식 for 변수 in 리스트)
-
for문 여러개 있을 때의 작성 형식 : [식 for 변수1 in 리스트1 for 변수2 in 리스트2] 또는 list(식 for 변수1 in 리스트1 for 변수2 in 리스트2)
-
간단하게 list와 for문만을 이용해서 코드를 짜보도록 할 것이다.
a = [i for i in range(5)]
print(a)
이와 같은 코드를 출력하게 되면 다음과 같은 출력이 형성되게 된다.
그러면 for문을 하나만 사용할 수 있는 것일까?
아니다. 2개도 사용할 수 있고 여러개 사용할 수 있다.
밑은 2개의 for문을 이용한 예시 코드이다. 구구단 코드는 단 한줄로 끝날 수가 있다.
a = [i*j for i in range(1,10) for j in range(1,10)]
print(a)
- list와 for문, if 조건문을 이용한 예시
-
for문과 if 조건문이 한개일 때 작성 형식 : [식 for 변수 in 리스트 if 조건식]
-
for문과 if 조건문이 여러개일 때 작성 형식 : [식 for 변수1 in 리스트1 if 조건식1 ... for 변수N in 리스트N if 조건식N]
-
- list와 for문, if .. else .. 조건문을 이용한 예시
-
for문, if .. else .. 조건문 작성 형식 : [식1 if 조건식 else 식2 for 변수 in 리스트 ]
-
다음 코드는 list와 for문, if.. else.. 조건문을 이용한 코드이다.
1~10사이의 수에 있어서 2의 배수일 때는 2의 제곱을 해주고 그렇지 않은 경우에는 3승을 해주는 코드이다.
a = [n**2 if n%2 == 0 else n**3 for n in range(1, 11)]
print(a)
이렇게 되면 출력 화면은 다음과 같다.
출처 : dojang.io/mod/page/view.php?id=2285
'공부' 카테고리의 다른 글
탐욕법 (greedy algorithms) (0) | 2020.04.12 |
---|---|
[crawling] selenium을 이용할 때 생기는 session not created 오류 해결 (0) | 2020.04.04 |
[python] 모듈과 패키지 (0) | 2020.03.29 |
[선형대수] Norm이란? (L0, L1, L2 Norm) (0) | 2020.03.23 |
[자료구조] 해시(Hash), 해시테이블(Hash table),해싱(hashing) 이란? (0) | 2020.03.13 |