@@ -148,6 +148,34 @@ print([[x for x in row if x % 3 == 0] for row in matrix if sum(row) >= 10]) # [[
148
148
149
149
참고로, 리스트 뿐만이 아니라 tuple, set, dict도 만들 수 있습니다.
150
150
dict의 경우 뒷 부분에서 zip을 배우고 나면 정말 요긴하게 쓸 수 있습니다. (즉, 다음에 다룬다는 이야기입니다.) 사용법 자체는 List Comprehension과 유사합니다.
151
+
152
+ (0319 추가) 추가적인 예제를 조금 더 준비해보았습니다. 이 예제를 통해 확실히 List Comprehension에 대해 이해해봅시다
153
+ ``` python
154
+ # 1 ~ 10을 담는 리스트를 만들어봅시다.
155
+ _list = [i for i in range (10 )]
156
+
157
+ # 2, 4, 6, ..., 20을 담는 리스트를 만들어봅시다.
158
+ _list = [2 * i for i in range (10 )]
159
+
160
+ # 주어진 리스트를 받아 3의 배수만 담는 리스트를 만들어봅시다.
161
+ tmp = [random.randrange(1 , 200 ) for i in range (100 )]
162
+ _list = [i for i in tmp if i % 3 == 0 ]
163
+
164
+ # 값이 두개 들어있는 튜플을 받아 리스트를 생성하되, 튜플 내부의 값을 뒤집어서 저장하세요.
165
+ list_of_tupel = [(i, j) for i in range (100 ), for j in range (100 , 0 , - 1 )]
166
+ _list = [(j, i) for i, j in list_of_tuple]
167
+
168
+ # 주어진 리스트를 그대로 담되, 15가 넘어가는 값은 15로 바꿔서 저장합시다.
169
+ _list = [i if i <= 15 else 15 for i in tmp]
170
+
171
+ # 두 개의 리스트를 합치되, 가능한 모든 조합을 저장하는 리스트를 만들어봅시다.
172
+ x = [i for i in range (5 )]
173
+ y = [i for i in range (5 )]
174
+ _list = [(i, j) for i in x, for j in y]
175
+ ```
176
+
177
+ 특히 초보자 분들이 많이 헷갈리시는 것이 if의 쓰임새일거에요.
178
+ 앞쪽에 붙는 if는 삼항 연산자의 if라고 생각하시면 되고, (즉, 값이 앞 조건을 만족하면 어떤 값, 만족하지 못하면 다른 값) 맨 끝에 붙는 if는 값을 넣을지, 뺄지 결정하는 조건이라고 생각하시면 됩니다.
151
179
* * *
152
180
153
181
Dictionary 잘 쓰기
@@ -594,4 +622,4 @@ Reference
594
622
595
623
- 파이썬 언어 레퍼런스 [ 이동] ( https://docs.python.org/ko/3/reference/index.html )
596
624
- 전문가를 위한 파이썬 (원제 Fluent Python) - 루시아누 하말류 [ 구매] ( https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=88728476 )
597
- - Python Cookbook - 데이비드 비즐리, 브라이언 K. 존스 [ 구매] ( https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=35468006 )
625
+ - Python Cookbook - 데이비드 비즐리, 브라이언 K. 존스 [ 구매] ( https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=35468006 )
0 commit comments