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 생 성기 와 파일 시스템 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 을 바 랍 니 다!이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.