📌for문 대체하기
리스트를 정의할 때 for 루프를 대체하는 방식이다.
리스트에 1부터 100까지 for문으로 서넌
list1 = []
for i in range(1, 101):
list1.append(i)
벌써 3줄이나 사용해야 한다.
리스트 컴프리헨션은 이를 대체할 수 있는 방법이다.
list1 = [x for x in range(1,101)]
리스트 컴프리헨션을 더 쉽게 이해한 방법은 뒤의 for문을 먼저 작성하는 것이다.
x를 1부터 100까지 loop를 돌고, 그 때마다 x를 리스트 요소에 추가한다.
if문이 들어간 리스트 컴프리 헨션도 같은 방식이다.
📌if문 포함
만약 1부터 100까지 짝수만 리스트에 추가하고 싶을 땐 어떨까?
list1 = [x for x in range(1,101) if x%2 == 0]
if문이 포함된 경우도 뒤의 for문을 먼저 작성한 뒤 if문을 작성하고 앞에 x를 적는다.
위의 과정으로 몇 번 연습해보니 금방 감이 왔다.
- for문 작성하기
- 뒤의 if문 작성하기
- 리스트 요소에 x 추가하기
📌2중 for문
2중 for문도 똑같은 방식으로 접근하니 이해가 빨랐다.
- for문 작성하기
- 2중 for문 작성하기
- if문 작성하기
- 리스트 요소에 x 추가하기
list1 = [x*y for x in range(1,11) for y in range(1,11) if y % 2 == 0]
📌Set 컴프리헨션
set1 = {x for x in range(1,11)}
set2 = {x for x in range(1,11) if x%2==1}
print(set1) # {1,2,3,4,5,6,7,8,9,10}
print(set2) # {1,3,5,7,9}
'객체 지향 프로그래밍 > Python' 카테고리의 다른 글
map과 filter 함수 활용하기 (0) | 2021.03.15 |
---|---|
파이썬에서는 모든 것이 객체! (2) | 2021.03.14 |
얕은 복사, 깊은 복사란? (4) | 2021.03.11 |
변경 불가능한 자료형 주의하기 (0) | 2021.03.10 |
파이썬은 정말 인터프리터 언어일까? (1) | 2021.03.10 |