Latest web development tutorials

Python3 반복자 및 발전기

반복자

반복 파이썬 가장 강력한 기능 중 하나가 수집 요소에 액세스 할 수있는 방법이다. .

반복자는 위치를 기억할 수있는 객체의 탐색이다.

모든 요소가 완전히 종료 될 때까지 액세스 반복자 객체 컬렉션의 첫 번째 요소의 시작으로부터 접근 할 수있다. 반복자는 앞으로 뒤로하지 이동할 수 있습니다.

ITER ()와 다음 () : 반복자는 두 가지 기본 방법이 있습니다.

문자열, 목록 또는 튜플 객체는 반복자를 생성 할 수 있습니다 :

>>> list=[1,2,3,4]
>>> it = iter(list)    # 创建迭代器对象
>>> print (next(it))   # 输出迭代器的下一个元素
1
>>> print (next(it))
2
>>> 

반복자 객체 종래 이송 문에 사용될 수있다 :

#!/usr/bin/python3

list=[1,2,3,4]
it = iter(list)    # 创建迭代器对象
for x in it:
    print (x, end=" ")

다음으로 상기 프로그램의 출력 결과는 :

1 2 3 4

또한 다음 () 함수를 사용할 수 있습니다 :

#!/usr/bin/python3

import sys         # 引入 sys 模块

list=[1,2,3,4]
it = iter(list)    # 创建迭代器对象

while True:
    try:
        print (next(it))
    except StopIteration:
        sys.exit()

다음으로 상기 프로그램의 출력 결과는 :

1
2
3
4

발전기

파이썬에서 항복 함수를 사용하는 발전기 (제너레이터)로 알려져있다.

차이점은 통상의 기능을, 상기 발전기가 리턴 반복자 기능은 작성기 반복자 이해 더 간단한 반복 작업을 사용할 수 있다는 것이다.

발전기는 프로세스를 실행하는 호출 발생 항복 함수마다 일시와 현재의 조작 정보, 수율의 반환 값을 모두 저장할 것이다. 현재 위치와 다음 실행 다음 () 메소드에서 실행을 계속합니다.

다음은 수율 실현 피보나치 열을 사용합니다 :

#!/usr/bin/python3

import sys

def fibonacci(n): # 生成器函数 - 斐波那契
    a, b, counter = 0, 1, 0
    while True:
        if (counter > n): 
            return
        yield a
        a, b = b, a + b
        counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成

while True:
    try:
        print (next(f), end=" ")
    except StopIteration:
        sys.exit()

다음으로 상기 프로그램의 출력 결과는 :

0 1 1 2 3 5 8 13 21 34 55