python 기초 학습 의 생 성기 와 파일 시스템 지식 총화

하나,생 성기
우선 교체 기 를 설명 하 다.
하나의 일치 하 는 방식 으로 서열 을 교체 할 수 있 는 것(예 를 들 어 목록 의 대상 이나 파일 의 줄)은 Python 의 중요 한 특징 이다.이것 은 교체 기 프로 토 콜(iterator protocol,대상 을 교체 할 수 있 는 일반적인 방식)이라는 방식 을 통 해
현 재 는 대상 을 교체 할 수 있 는 원생 적 인 방법 이다.

some_dict = {'a': 1, 'b': 2, 'c': 3}  
for key in some_dict:
    print(key)
#  :
a
c
b
교체 기 는 for 순환 과 같은 문맥 에서 Python 해석 기 에 대상 을 보 낼 수 있 는 특수 대상 입 니 다.목록 같은 대상 을 받 아들 일 수 있 는 방법 도 대부분 받 아들 일 수 있다.예 를 들 어 min,max,sum 등 내장 방법 과 list,tuple 등 유형 구조 기.

dict_iterator=iter(some_dict)
print(dict_iterator)
print(list(dict_iterator))
#  
<dictionary-keyiterator object at 0x7ff0105bea48>
['a', 'c', 'b']
생 성기(generator)는 새로운 교체 가능 한 대상 을 구성 하 는 간단 한 방식 이다.일반적인 함수 가 실 행 된 후에 하나의 값 만 되 돌려 주 고,생 성 기 는 하나의 값 시퀀스 를 지연 시 키 는 방식 으로 되 돌려 줍 니 다.즉,하나의 값 을 되 돌려 줄 때마다 멈 추고,다음 값 이 요 청 될 때 까지 계속 합 니 다.생 성 기 를 만 들 려 면 함수 의 return 을 yeild 로 바 꾸 면 됩 니 다.

def squares(n=10):
    print('Generating squares from 1 to {0}'.format(n ** 2))
    for i in range(1,n+1):
        yield i**2
gen=squares()#   :         ,               ,print         !
print(gen)  #<generator object squares at 0x7f3a75af4b40>
 
#                ,            
for x  in gen: 
    print(x,)
출력:

Generating squares from 1 to 100
(1,)
(4,)
(9,)
(16,)
(25,)
(36,)
(49,)
(64,)
(81,)
(100,)
또 다른 간결 한 구조 생 성 기 를 만 드 는 방법 은 생 성기 표현 식(generator expression)을 사용 하 는 것 이다.이것 은 목록,사전,집합 유도 식 과 유사 한 생 성기 이다.주의 하 다. 그 생 성 방식 은 목록 유도 식 양쪽 의 괄호 를 원 괄호 로 바 꾸 는 것 입 니 다.

gen=(x**2 for x in range(5))
print(gen)
print(type(gen))
for i in gen:
    print(i)
  :
<generator object <genexpr> at 0x7ff01066ef00>
<type 'generator'>
0
1
4
9
16
#                      : 
def _make_gen():
    for x  in range(5):
        yield x**2 
 
gen=_make_gen()
for i in gen:
    print(i)
파일 시스템
내 장 된 open 함수 인 자 를 사용 하면 다음 표 와 같 습 니 다.

상용 파일 방법

\#with 문 구 를 사용 하면 열 린 파일 을 쉽게 정리 하고 기본 실행 이 끝 날 때 파일 흐름 을 자동 으로 닫 습 니 다.

with open(path) as f: 
    lines=[x.strip() for x in f]
python 기초 학습 의 생 성기 와 파일 시스템 지식 총화 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 python 생 성기 와 파일 시스템 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 을 바 랍 니 다!

좋은 웹페이지 즐겨찾기