백엔드 개발 파이썬 튜토리얼 Python 프로그래밍 마스터 2: 반복자를 위해 작성됨

Python 프로그래밍 마스터 2: 반복자를 위해 작성됨

Nov 04, 2020 pm 05:19 PM
파이썬 프로그래밍 반복자

python tutorial 칼럼에서는 프로그래밍에 사용되는 반복자를 소개합니다. ㅋㅋㅋ 무늬. Python의 기본 데이터 유형 중 for 루프에 사용할 수 있는 유형은 반복 가능한 유형입니다. 물론 iter 함수를 사용하여 해당 반복자를 얻은 다음 객체를 순회할 수도 있습니다. 예를 들어 다음 코드는

l = [1, 3]  # 可迭代对象 __iter__t = iter(l) #获取迭代器对象print(t.__next__())
print(t.__next__())# print(t.__next__()) # 报异常复制代码
로그인 후 복사

반복 가능한 객체를 구현하려면 먼저 해당 반복기 객체를 구현해야 합니다. Python에서 반복자를 구현하려면 __next__ 메서드만 구현하면 됩니다. 그러나 collections 패키지의 Iterator 클래스는 __next__ 메서드를 추상 메서드로 정의합니다. 저자는 프로그램의 가독성을 고려하여 반복자를 구현할 때 Iterator 클래스를 상속할 수 있다고 믿습니다. Python 프로그래밍 마스터 2: 반복자를 위해 작성됨

from random import samplefrom collections import Iterable, Iteratorclass WeatherIterator(Iterator):
    def __init__(self, cities):
        self.cities = cities
        self.index = 0

    def getWeather(self, city):
        return (city, sample(['sun','wind','yu'], 1)[0])    def __next__(self):
        if self.index == len(self.cities):            raise StopIteration
        city = self.cities[self.index]
        self.index += 1
        return self.getWeather(city)复制代码
로그인 후 복사
반복 가능한 객체를 구현하려면 __iter__ 메서드만 구현하면 됩니다. 마찬가지로 collections 패키지의 Iterable 클래스도 __iter__ 메서드를 추상 클래스로 정의합니다.
from collections import Iterableclass WeatherIterable(Iterable):
    def __init__(self, cities):
        self.cities = cities
        self.index = 0

    def __iter__(self):
        return WeatherIterator(self.cities)复制代码
로그인 후 복사

이렇게 하면 for 루프를 사용하여 반복할 수 있습니다.

생성기 소개

먼저 다음 코드를 살펴보세요.

def gen():
    print("step 1")    yield 1
    print("step 2")    yield 2
    print("step 3")    yield 3复制代码
로그인 후 복사

위 gen 함수의 반환 값은 생성기 개체입니다.

g = gen()
g.__next__()
print(g.__next__())
print(g.__next__())复制代码
로그인 후 복사
위 코드에서 볼 수 있듯이 생성기의 __next__ 메서드가 호출될 때마다 Yield 키워드를 만날 때까지 gen 함수를 실행하고 다음을 반환합니다. 따라서 발전기는 중단될 수 있는 기능으로 이해될 수 있습니다.

참고: 생성기 개체는 반복 가능한 개체이기도 합니다.

for x in g:
    print(x)复制代码
로그인 후 복사
생성기 함수를 사용하여 반복 가능한 객체를 구현하는 방법

생성기 함수로 __iter__ 메서드를 구현하면 반복 가능한 객체를 구현할 수 있습니다.

class PrimeNumbers:
    def __init__(self, start, end):
        self.start = start
        self.end = end    def isPrimeNum(self, k):  #判断是否是素数
        if k < 2:            return False
        for i in range(2, k):            if k % i == 0:                return False
        return True

    def __iter__(self):
        for k in range(self.start, self.end + 1):            if self.isPrimeNum(k):                yield kfor num in PrimeNumbers(2, 100):
    print(num)复制代码
로그인 후 복사

역방향 반복 수행 방법 및 역방향 반복 구현 방법

iter 함수는 반복 가능한 객체의 정방향 반복자를 얻을 수 있고, reverse 함수는 반복 가능한 객체의 역방향 반복자를 얻을 수 있습니다.

l = [1, 2, 3, 4, 5]for x in reversed(l):
    print(x)复制代码
로그인 후 복사

역 반복을 구현하려면 __reversed__ 메서드를 구현하면 됩니다.

class FloatRange:
    def __init__(self, start, end, step=0.1):
        self.start = start
        self.end = end
        self.step = step    def __iter__(self):
        t = self.start        while t <= self.end:            yield t
            t += self.step    def __reversed__(self):
        t = self.end        while t >= self.start:            yield t
            t -= self.stepfor x in FloatRange(1.0, 4.0, 0.5):
    print(x)for x in reversed(FloatRange(1.0, 4.0, 0.5)):
    print(x)复制代码
로그인 후 복사
반복자에서 슬라이싱 작업을 수행하는 방법

itertools 패키지의 islice 함수는 반복 가능한 객체에서 슬라이싱 작업을 수행할 수 있습니다.

from itertools import islicefor x in islice(FloatRange(1.0, 4.0, 0.5), 2, 5):
    print(x)复制代码
로그인 후 복사

for 문에서 반복 가능한 여러 개체를 반복하는 방법

zip 메서드를 사용하여 해당 요소의 튜플을 형성하세요.

for w, e, m in zip([1, 2, 3, 4], ('a', 'b', 'c','d'), [5, 6, 7, 8]):
    print(w, e, m)复制代码
로그인 후 복사

itertools 패키지의 체인 기능을 사용하여 반복 가능한 여러 객체를 연결하세요. zip 메소드를 사용하여 해당 요소의 튜플을 형성하십시오.

아아아아

위 내용은 Python 프로그래밍 마스터 2: 반복자를 위해 작성됨의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

반복자와 재귀 알고리즘을 사용하여 C#에서 데이터를 처리하는 방법 반복자와 재귀 알고리즘을 사용하여 C#에서 데이터를 처리하는 방법 Oct 08, 2023 pm 07:21 PM

C#에서 반복기와 재귀 알고리즘을 사용하여 데이터를 처리하는 방법에는 특정 코드 예제가 필요합니다. C#에서 반복기와 재귀 알고리즘은 일반적으로 사용되는 두 가지 데이터 처리 방법입니다. 반복자는 컬렉션의 요소를 탐색하는 데 도움이 될 수 있으며 재귀 알고리즘은 복잡한 문제를 효율적으로 처리할 수 있습니다. 이 문서에서는 반복자와 재귀 알고리즘을 사용하여 데이터를 처리하는 방법을 자세히 설명하고 특정 코드 예제를 제공합니다. 반복자를 사용하여 데이터 처리 C#에서는 컬렉션의 크기를 미리 알지 않고도 반복자를 사용하여 컬렉션의 요소를 반복할 수 있습니다. 반복자를 통해 나는

Linux에서 스크립팅 및 실행을 위해 Python을 사용하는 방법 Linux에서 스크립팅 및 실행을 위해 Python을 사용하는 방법 Oct 05, 2023 am 11:45 AM

Linux에서 Python을 사용하여 스크립트를 작성하고 실행하는 방법 Linux 운영 체제에서는 Python을 사용하여 다양한 스크립트를 작성하고 실행할 수 있습니다. Python은 스크립팅을 보다 쉽고 효율적으로 만들기 위한 풍부한 라이브러리와 도구를 제공하는 간결하고 강력한 프로그래밍 언어입니다. 아래에서는 Linux에서 스크립트 작성 및 실행을 위해 Python을 사용하는 방법의 기본 단계를 소개하고, Python을 더 잘 이해하고 사용하는 데 도움이 되는 몇 가지 구체적인 코드 예제를 제공합니다. 파이썬 설치

Python에서 sqrt() 함수 사용 Python에서 sqrt() 함수 사용 Feb 21, 2024 pm 03:09 PM

Python에서 sqrt() 함수의 사용법 및 코드 예 1. sqrt() 함수의 기능 및 소개 Python 프로그래밍에서 sqrt() 함수는 math 모듈에 있는 함수이며, 그 기능은 의 제곱근을 계산하는 것입니다. 숫자. 제곱근은 자신을 곱한 숫자가 그 숫자의 제곱과 같다는 것을 의미합니다. 즉, x*x=n이면 x는 n의 제곱근이 됩니다. sqrt() 함수는 프로그램에서 제곱근을 계산하는 데 사용할 수 있습니다. 2. Python, sq에서 sqrt() 함수를 사용하는 방법

Python 프로그래밍을 사용하여 Baidu 이미지 인식 인터페이스의 도킹을 실현하고 이미지 인식 기능을 실현하는 방법을 가르쳐주세요. Python 프로그래밍을 사용하여 Baidu 이미지 인식 인터페이스의 도킹을 실현하고 이미지 인식 기능을 실현하는 방법을 가르쳐주세요. Aug 25, 2023 pm 03:10 PM

Python 프로그래밍을 사용하여 Baidu의 이미지 인식 인터페이스 도킹을 구현하고 이미지 인식 기능을 실현하는 방법을 가르칩니다. 컴퓨터 비전 분야에서 이미지 인식 기술은 매우 중요한 기술입니다. Baidu는 이미지 분류, 라벨링, 얼굴 인식 및 기타 기능을 쉽게 구현할 수 있는 강력한 이미지 인식 인터페이스를 제공합니다. 이 기사에서는 Python 프로그래밍 언어를 사용하여 Baidu 이미지 인식 인터페이스에 연결하여 이미지 인식 기능을 실현하는 방법을 설명합니다. 먼저 Baidu 개발자 플랫폼에서 애플리케이션을 만들고

Baidu Map API 문서의 좌표 변환 기능을 분석하는 Python 프로그래밍 Baidu Map API 문서의 좌표 변환 기능을 분석하는 Python 프로그래밍 Aug 01, 2023 am 08:57 AM

Baidu Map API 문서의 좌표 변환 기능을 분석하기 위한 Python 프로그래밍 소개: 인터넷의 급속한 발전으로 지도 위치 지정 기능은 현대인의 삶에 없어서는 안 될 부분이 되었습니다. 중국에서 가장 인기 있는 지도 서비스 중 하나인 Baidu Maps는 개발자가 사용할 수 있는 일련의 API를 제공합니다. 이 기사에서는 Python 프로그래밍을 사용하여 Baidu Map API 문서의 좌표 변환 기능을 분석하고 해당 코드 예제를 제공합니다. 1. 소개 개발 중에 좌표 변환 문제가 발생할 수 있습니다. 바이두 지도 AP

Python에서 PCA 주성분 분석 알고리즘을 작성하는 방법은 무엇입니까? Python에서 PCA 주성분 분석 알고리즘을 작성하는 방법은 무엇입니까? Sep 20, 2023 am 10:34 AM

Python에서 PCA 주성분 분석 알고리즘을 작성하는 방법은 무엇입니까? PCA(Principal Component Analysis)는 데이터의 차원을 줄여 데이터를 더 잘 이해하고 분석하는 데 사용되는 일반적으로 사용되는 비지도 학습 알고리즘입니다. 이 기사에서는 Python을 사용하여 PCA 주성분 분석 알고리즘을 작성하는 방법을 배우고 구체적인 코드 예제를 제공합니다. PCA의 단계는 다음과 같습니다. 데이터 표준화: 데이터의 각 특징의 평균을 0으로 만들고 분산을 동일한 범위로 조정하여 다음을 보장합니다.

Python에서 이미지 처리 및 인식을 수행하는 방법 Python에서 이미지 처리 및 인식을 수행하는 방법 Oct 20, 2023 pm 12:10 PM

Python에서 이미지 처리 및 인식을 수행하는 방법 요약: 현대 기술로 인해 이미지 처리 및 인식이 여러 분야에서 중요한 도구가 되었습니다. Python은 풍부한 이미지 처리 및 인식 라이브러리를 갖춘 배우기 쉽고 사용하기 쉬운 프로그래밍 언어입니다. 이 기사에서는 이미지 처리 및 인식을 위해 Python을 사용하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 이미지 처리: 이미지 처리는 이미지 품질 향상, 이미지에서 정보 추출 등을 위해 이미지에 대한 다양한 작업 및 변환을 수행하는 프로세스입니다. Python의 PIL 라이브러리(Pi

Baidu Map API에서 지도 타일을 얻기 위해 Python으로 프로그램을 작성하는 방법은 무엇입니까? Baidu Map API에서 지도 타일을 얻기 위해 Python으로 프로그램을 작성하는 방법은 무엇입니까? Jul 31, 2023 pm 04:21 PM

Baidu Map API에서 지도 타일을 얻기 위해 Python으로 프로그램을 작성하는 방법은 무엇입니까? 지도 타일은 지도를 구성하는 기본 요소입니다. 지도를 작은 독립 이미지로 분할하면 지도 로딩 및 표시 속도가 빨라집니다. Baidu Map API는 풍부한 지도 타일 데이터를 제공합니다. 이 기사에서는 Python을 사용하여 Baidu Map API에서 지도 타일을 얻는 방법을 소개하고 코드 예제를 제공합니다. Baidu Map API의 지도 타일을 얻으려면 인터페이스에서 제공하는 키(ak)를 사용해야 합니다. 따라서 먼저 Baidu Map을 사용해야 합니다.

See all articles