1 함수 발생기 고급
1.1 보내
DEF 생성기 () 전단 (123 ) 콘텐츠 = 수율 . 1 개 전단 ( ' ======= ' , 컨텐츠) 전단 (456 ) 의 Arg = 수율 2 G = 생성기 () RET = G. __next__ () 인쇄 ( " *** ' , RET) RET = g.send ( ' 안녕하세요 ' ) #의 전송 및 다음과 같은 효과 인쇄 ( ' *** ' , RET) #의 결과 : # 123 # *** 1. # ======= 안녕하세요 # 456 # *** 2
다음에, 다음 효과를 실질적으로 균일 한 값을 전송하기하면
바로 다음 값, 데이터 전송에 위치 수율 도착
의 고려를 보내
발생기가 다음의 다음 값을 획득하는 것 처음
마지막 외부 수율 용인 값
평균 데이터 이동 1.2
DEF 평균 () 합계 = 0 카운트 = 0 평균 = 0 동안 참 : NUM = 항복 평균의 합 + NUM = # 10 카운트 + 1 = # 1 평균 = 합 / 카운트 avg_g = 평균 () avg_g. __next__ () avg1 = avg_g.send (10 ) avg1 = avg_g.send (20 ) avg1 = avg_g.send (30 ) 인쇄 (avg1)
# WPW 데코 발생기 DEF 초기화 (FUNC) : #의 장식 DEF 내부 (인수 *, ** kwargs로) : G = FUNC (인수 *, ** kwargs로) # G = 평균 () G. __Next__ () 반환 G가 돌아 내부 @Init DEF : 평균 () SUM = 0 COUNT = 0 AVG = 0 그동안 참 : NUM은 = 항복 AVG의 SUM + = NUM의 #을 10 카운트 + 1 = # 1 평균 = 합 / 카운트 avg_g =) (평균 # ===> 내부 RET = avg_g.send (10 ) 인쇄 (RET) RET = avg_g.send (20 ) 인쇄 (RET)
(2) 식 발전기
= egg_list [ ' 계란 S % ' % I 위한 I 의 범위 (10)] # 목록 유도 식 인쇄 (egg_list) egg_list = [] 에 대한 I 의 범위 (10 ) : egg_list.append ( ' 계란 S % ' %의 I) 인쇄 (egg_list)
# 두가지 방법이 동일
#의 발전기 표현 G = (I 위한 I 의 범위 (10 )) 인쇄 (G) 에 대한 I 에서 G : 인쇄 (I)
3, 각종 파생어
# 3 30 나누어 내 모든 RET = I 에 대한 I 의 범위 (30) IF I % 3 == 0] # 완전한 목록 유도 된 전단 (RET) G = (I 위한 I 에서 30 (범위) IF I == 0.3 %) # 완전한 목록 유도 된 전단 (G) 리 = [] 에 대한 I 에서 G : li.append (I) 전단 (리튬)
# 예 세 : 이름 목록에있는 모든 이름을 찾을 수는 두 개의 중첩의 'E'가 들어 이름 = [[ ' 톰 ' , ' 빌리 ' , ' 제퍼슨 ' , ' 앤드류 ' , ' 웨슬리 ' , ' 스티븐 ' , ' 조 '를 ], [ " 앨리스 ' , ' 질 ' , ' 아나 ' , ' 웬디 ' , ' 제니퍼 ', '쉐리 ' , ' 에바 ' ] RET = 이름 대 LST 의 이름 에 대한 이름 에 LST 경우 name.count ( ' E ' ) == 2 ] 잉크 (RET) g = (명 대 LST 의 이름 에 대한 이름 에 LST 경우 name.count ( ' E ' ) == 2 ) 잉크 (g) 리 = [] 에 대한 I 의g : li.append (ⅰ) 잉크 (리튬)
# 사전 적 키와 값 스왑 CMCase = { ' ' 10, ' B ' : 34이다 } # {10 'A'(34)는 'B'} mcase_frequency = {CMCase [K] : K 에 대한 K 의 }는 CMCase의 인쇄 (mcase_frequency)
# 케이스의 값에 대응하는 결합 된 값은, k는 소문자로 통합된다 CMCase = { ' ' 10, ' B ' : 34이고, ' ' :. 7 ' 는 Z ' :. 3 } # { 'A'+ 10 7 'B'34 'Z'이다} 3. mcase_frequency의 k.lower = {() mcase.get (k.lower (), 0) + mcase.get (k.upper (), 0) 에 대한 K 의 }는 CMCase의 인쇄 (mcase_frequency)
# 유도 집합은 결과가 중복되어 함수 제곱 = {X ** 2 대 X 의 [. 1, -1, 2 ]} 인쇄 (제곱)