Python 프로그래밍 마스터 2: 반복자를 위해 작성됨
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 클래스를 상속할 수 있다고 믿습니다.
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)复制代码
먼저 다음 코드를 살펴보세요.from collections import Iterableclass WeatherIterable(Iterable): def __init__(self, cities): self.cities = cities self.index = 0 def __iter__(self): return WeatherIterator(self.cities)复制代码로그인 후 복사이렇게 하면 for 루프를 사용하여 반복할 수 있습니다.
생성기 소개for weather in WeatherIterable(['北京', '上海', '广州']): print(weather)复制代码로그인 후 복사
def gen():
print("step 1") yield 1
print("step 2") yield 2
print("step 3") yield 3复制代码
로그인 후 복사
위 gen 함수의 반환 값은 생성기 개체입니다.
def gen(): print("step 1") yield 1 print("step 2") yield 2 print("step 3") yield 3复制代码
g = gen() g.__next__() print(g.__next__()) print(g.__next__())复制代码
for x in g: print(x)复制代码
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 함수는 반복 가능한 객체의 역방향 반복자를 얻을 수 있습니다. 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)复制代码
l = [1, 2, 3, 4, 5]for x in reversed(l): print(x)复制代码
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)复制代码
from itertools import islicefor x in islice(FloatRange(1.0, 4.0, 0.5), 2, 5):
print(x)复制代码
로그인 후 복사
for 문에서 반복 가능한 여러 개체를 반복하는 방법zip 메서드를 사용하여 해당 요소의 튜플을 형성하세요. from itertools import islicefor x in islice(FloatRange(1.0, 4.0, 0.5), 2, 5): print(x)复制代码
for w, e, m in zip([1, 2, 3, 4], ('a', 'b', 'c','d'), [5, 6, 7, 8]):
print(w, e, m)复制代码
로그인 후 복사
itertools 패키지의 체인 기능을 사용하여 반복 가능한 여러 객체를 연결하세요.
zip 메소드를 사용하여 해당 요소의 튜플을 형성하십시오. for w, e, m in zip([1, 2, 3, 4], ('a', 'b', 'c','d'), [5, 6, 7, 8]): print(w, e, m)复制代码
아아아아
위 내용은 Python 프로그래밍 마스터 2: 반복자를 위해 작성됨의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











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

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

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

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

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

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

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

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