#!/usr/bin/env python # coding: utf-8 # # Chapter 17 Advanced Topics in Python # # # In[1]: # 01 딕셔너리(Dictionaries)에 대한 반복자(Iterators) my_dict = { "name" : "xuruiqi", "gender" : "male", "birthday" : "19910527" } print (my_dict.items()) # In[2]: # 02 keys()와 values() my_dict = { "name" : "xuruiqi", "gender" : "male", "birthday" : "19910527" } print (my_dict.keys()) print (my_dict.values()) # In[3]: # 03 'in' 연산자 my_dict = { "name" : "xuruiqi", "gender" : "male", "birthday" : "19910527" } for e in my_dict: print (e, my_dict[e]) # 딕셔너리는 순서가 보장되지 않습니다! # In[4]: # 04 리스트 만들기 evens_to_50 = [i for i in range(51) if i % 2 == 0] print (evens_to_50) # In[5]: # 05 리스트 내포(List Comprehensions) 문법 even_squares = [x ** 2 for x in range(1, 11) if x % 2 == 0] even_squares # In[6]: # 06 여러분의 차례입니다! cubes_by_four = [x ** 3 for x in range(1, 11) if (x ** 3 % 4 == 0)] print (cubes_by_four) # In[7]: # 07 리스트 슬라이싱(List Slicing) 문법 l = [i ** 2 for i in range(1, 11)] # Should be [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] print (l[2:9:2]) # In[8]: # 08 색인(index) 생략하기 my_list = range(1, 11) # List of numbers 1 - 10 # Add your code below! print (my_list[: : 2]) # 리스트의 내용을 출력하려면 (Python3) print (*my_list[: : 2]) # In[9]: # 09 리스트 뒤집기 my_list = range(1, 11) # Add your code below! backwards = my_list[ : : -1] print(*backwards) # In[10]: # 10 스트라이드 길이 (Stride Length) to_one_hundred = range(101) # Add your code below! backwards_by_tens = to_one_hundred[ : : -10] print (*backwards_by_tens) # In[11]: # 11 연습이 최고를 만듭니다 Practice Makes Perfect to_21 = range(1, 22) odds = to_21[ : : 2] #[x for x in to_21 if x % 2 != 0] middle_third = range(int(21 / 3 + 1), int(21 / 3 * 2 + 1)) print(*middle_third) # 3등분의 중간 # In[12]: # 12 익명 함수 Anonymous Functions my_list = range(16) print (*filter(lambda x: x % 3 == 0, my_list)) # In[13]: # 13 람다(Lambda) 문법 languages = ["HTML", "JavaScript", "Python", "Ruby"] print (*filter(lambda x: x == "Python", languages)) # In[14]: # 14 해보세요! squares = [x ** 2 for x in range(1, 11)] print (*filter(lambda x: x >= 30 and x <= 70, squares)) # In[15]: # 15 딕셔너리(Dictionaries) 반복하기 movies = { "Monty Python and the Holy Grail": "Great", "Monty Python's Life of Brian": "Good", "Monty Python's Meaning of Life": "Okay" } print (movies.items()) # In[16]: # 16 리스트 내포(list comprehension) 이해하기 threes_and_fives = [x for x in range(1, 16) if x % 3 == 0 or x % 5 == 0] threes_and_fives # In[17]: # 17 리스트 슬라이싱(List Slicing) garbled = "!XeXgXaXsXsXeXmX XtXeXrXcXeXsX XeXhXtX XmXaX XI" message = "".join(x for x in garbled[ : : -1] if x != 'X') print (message) # In[18]: # 18 람다 표현 garbled = "IXXX aXXmX aXXXnXoXXXXXtXhXeXXXXrX sXXXXeXcXXXrXeXt mXXeXsXXXsXaXXXXXXgXeX!XX" message = filter(lambda x: x != 'X', garbled) print (*message)