ホームページ バックエンド開発 Python チュートリアル Python イテレータの定義と簡単な使用法分析

Python イテレータの定義と簡単な使用法分析

May 02, 2018 pm 03:41 PM
python 使用法 単純

この記事では、主に Python イテレータの定義と簡単な使用法を紹介し、例の形でイテレータの概念、原理、作成と使用法を分析します。必要な友人はそれを参照できます

この記事の例では、定義とイテレータについて説明します。 Python イテレータの使用の簡素化。参考までに皆さんと共有してください。詳細は次のとおりです:

1. イテレーターとは何ですか?

反復とは、名前が示すように、何かを何度も繰り返すことです (ループ内で行われていることと同じです)。 )。イテレータは __next__() メソッドを実装するオブジェクトです (このメソッドは呼び出すときにパラメータを必要としません)。通常、イテレータはシーケンスの最初の要素からアクセスを開始し、すべての要素が終了するまでアクセスします。すべての要素がアクセスされました。 [注]: イテレータは前方にのみ移動でき、後方には移動できません

[イテレータの利点]:

イテレータを使用する場合、反復プロセス全体のすべての要素を事前に準備する必要はありません。イテレータは要素を反復するときにのみ要素を計算します。要素は存在しないか、その前後で要素が存在しない可能性があります。したがって、反復子は、巨大なシーケンス、さらには無限のシーケンスを走査するのに適しています。代 2. イテレータ

A を作成し、組み込みファクトリ関数 It (Iteraable) を使用して、反復シーケンスをイテレータ

a=[1,2,3,4]
b=(1,2,3)
str='Tomwenxing'
print(iter(a))
print(iter(b))
print(iter(str))
ログイン後にコピー
に変換します。 実行結果:

& lt; listiterator オブジェクト at 0x0000000001D6D550 & GT ;

< ; tupleiterator object at 0x0000000001D6D550>

)メソッドはすべて次の要素を返すか、StopIteration コンテナ オブジェクトをスローします

•Python には「イテレータ」クラスがないため、次の 2 つの特徴を持つクラスが使用されます「反復子」クラスと呼ぶことができます:


1. __next__() メソッドがあり、コンテナの次の要素を返すか、StopIteration 例外をスローします

2. があります。 __iter__() メソッド。イテレーター自体を返します
#斐波那契数列
class Fabs():
  def __init__(self,max):
    self.max=max
    self.n,self.a,self.b=0,0,1
  def __iter__(self):#定义__iter__方法
    return self
  def __next__(self):#定义__next__方法
    if self.n<self.max:
      tmp=self.b
      self.a,self.b=self.b,self.a+self.b
      #等价于:
      #t=(self.a,self.a+self.b)
      #self.a=t[0]
      #self.b=t[1]
      self.n+=1
      return tmp
    raise StopIteration
print(Fabs(5))
for item in Fabs(10):
  print(item,end=&#39; &#39;)
ログイン後にコピー

演算結果:

<__main__.Fabs object at 0x00000000023F9278>

1 1 2 3 5 8 13 21 34 55__next__()方法都返回下一个元素或抛出StopIteration的容器对象

•由于Python中没有“迭代器”这个类,因此具有以下两个特性的类都可以称为“迭代器”类:

  1、有__next__()方法,返回容器的下一个元素或抛出StopIteration异常

  2、有__iter__()

3.イテレータメソッド


1.iter.__next__ (): イテレータを返します 次の要素はあるが、次の要素がない場合、StopIteration 例外がスローされます

list=[1,2,3,4]
list=iter(list)
print(list.__next__())
print(list.__next__())
print(list.__next__())
print(list.__next__())
print(list.__next__())
ログイン後にコピー
動作結果:

Traceback (最新の呼び出し) last): ファイル "E:py3DemoHelloiterDemo.py"、7 行目、 print(list.__next__())

StopIteration

1

2
3

4


2.iter.__iter__( ): イテレータ オブジェクト自体を返します

list=[1,2,3,4]
list=iter(list)
print(list.__iter__())
ログイン後にコピー

演算結果:

関連する推奨事項:

Pythonイテレーターのnext()

以上がPython イテレータの定義と簡単な使用法分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python vs. C:比較されたアプリケーションとユースケース Python vs. C:比較されたアプリケーションとユースケース Apr 12, 2025 am 12:01 AM

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

Oracleデータベースで構成されているファイルの種類は何ですか? Oracleデータベースで構成されているファイルの種類は何ですか? Apr 11, 2025 pm 03:03 PM

Oracle Databaseファイル構造には、データファイル:実際のデータの保存が含まれます。制御ファイル:データベース構造情報を記録します。ログファイルをやり直す:データの一貫性を確保するために、トランザクション操作を記録します。パラメーターファイル:パフォーマンスを最適化するためのデータベースを実行するパラメーターを含みます。アーカイブログファイル:災害復旧のためのバックアップREDOログファイル。

Oracleデータベースにログインする方法 Oracleデータベースにログインする方法 Apr 11, 2025 pm 02:39 PM

Oracleデータベースログインには、ユーザー名とパスワードだけでなく、接続文字列(サーバー情報と資格情報を含む)および認証方法も含まれます。 SQL*Plusおよびプログラミング言語コネクタをサポートし、ユーザー名とパスワード、Kerberos、LDAPなどの認証オプションを提供します。一般的なエラーには、接続文字列エラーと無効なユーザー名/パスワードが含まれますが、ベストプラクティスは接続プーリング、パラメーター化されたクエリ、インデックス作成、セキュリティの資格情報の処理に焦点を当てています。

Debian Apacheログを使用してWebサイトのパフォーマンスを向上させる方法 Debian Apacheログを使用してWebサイトのパフォーマンスを向上させる方法 Apr 12, 2025 pm 11:36 PM

この記事では、Debianシステムの下でApacheログを分析することにより、Webサイトのパフォーマンスを改善する方法について説明します。 1.ログ分析の基本Apacheログは、IPアドレス、タイムスタンプ、リクエストURL、HTTPメソッド、応答コードなど、すべてのHTTP要求の詳細情報を記録します。 Debian Systemsでは、これらのログは通常、/var/log/apache2/access.logおよび/var/log/apache2/error.logディレクトリにあります。ログ構造を理解することは、効果的な分析の最初のステップです。 2。ログ分析ツールさまざまなツールを使用してApacheログを分析できます。コマンドラインツール:GREP、AWK、SED、およびその他のコマンドラインツール。

Python:ゲーム、GUIなど Python:ゲーム、GUIなど Apr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

CディスクにインストールされているOracleデータベースは何ですか? CディスクにインストールされているOracleデータベースは何ですか? Apr 11, 2025 pm 04:21 PM

Cドライブ上のOracleデータベースの隠れ場所:レジストリ:レジストリエディターを使用して「Oracle」を検索してインストールパス、サービス名などを含む情報を見つけます。ファイルシステム:Oracleファイルは、ホームディレクトリ、システムファイル、一時ファイルなどを含むCドライブの複数の場所に散らばっています。慎重なアクション:Oracleをアンインストールするときは、ファイルを削除するだけでなく、レジストリとサービスをクリーンする必要があります。公式のアンインストールツールを使用するか、専門的なヘルプを求めることをお勧めします。スペース管理:ディスクスペースを最適化して、CドライブにOracleの設置を避けます。定期的に一時的なファイルを清掃します

Laravel(PHP)vs。Python:開発環境とエコシステム Laravel(PHP)vs。Python:開発環境とエコシステム Apr 12, 2025 am 12:10 AM

開発環境とエコシステムにおけるLaravelとPythonの比較は次のとおりです。1。Laravelの開発環境は簡単で、PHPと作曲家のみが必要です。 Laravelforgeなどの豊富な範囲の拡張パッケージを提供しますが、拡張パッケージのメンテナンスはタイムリーではない場合があります。 2。Pythonの開発環境もシンプルで、PythonとPIPのみが必要です。エコシステムは巨大で複数のフィールドをカバーしていますが、バージョンと依存関係の管理は複雑な場合があります。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

See all articles