検索
ホームページバックエンド開発Python チュートリアルPython で iter() 関数を使用して反復可能オブジェクトのイテレータを取得する方法

Python で iter() 関数を使用して反復可能オブジェクトのイテレータを取得する方法

Aug 22, 2023 am 08:31 AM
イテレーター反復可能なオブジェクトiter() 関数

Python で iter() 関数を使用して反復可能オブジェクトのイテレータを取得する方法

Python で iter() 関数を使用して反復可能オブジェクトのイテレータを取得する方法

Python では、反復は非常に一般的なプログラミング操作です。反復操作を通じて、反復可能なオブジェクト内の要素に 1 つずつアクセスできます。 Python の反復可能なオブジェクトには、リスト、タプル、文字列、辞書、セットなどが含まれます。反復操作を実装するには、まず反復可能オブジェクトの反復子を取得する必要があります。 iter() 関数は、反復可能オブジェクトのイテレータを取得するために使用されます。

iter() 関数は、反復子オブジェクトを返す Python の組み込み関数です。イテレータは、next() 関数を通じて要素に 1 つずつアクセスできるオブジェクトです。 iter() 関数には主に 2 つの用途があります。1 つは反復可能オブジェクトを渡すこと、もう 1 つは呼び出し可能オブジェクトを渡すことです。

まず、最初の使用法を見てみましょう。これは、反復可能なオブジェクトを渡すことです。以下は例です:

num_list = [1, 2, 3, 4, 5]
iter_obj = iter(num_list)

print(next(iter_obj))  # 输出1
print(next(iter_obj))  # 输出2
print(next(iter_obj))  # 输出3
print(next(iter_obj))  # 输出4
print(next(iter_obj))  # 输出5

この例では、最初にリスト num_list を定義し、それから iter() 関数を通じてそれを反復子オブジェクト iter_obj# に変換します # #。その後、next() 関数を使用して iter_obj 内の要素に 1 つずつアクセスし、出力結果は 1、2、3、4、および 5 になります。

反復子が反復可能オブジェクトの最後に到達したときに、 next() 関数を再度呼び出すと StopIteration 例外がスローされることに注意してください。したがって、 next() 関数を使用する場合は、反復の完了後にエラーが発生しないように例外処理を実行する必要があります。

もう 1 つの使用法は、呼び出し可能なオブジェクトを渡すことです。呼び出し可能オブジェクトとは、関数やクラス オブジェクトなど、関数と同様に呼び出すことができるオブジェクトを指します。呼び出し可能なオブジェクトを iter() 関数に渡すことで、無限に反復するイテレーターを作成できます。以下に例を示します。

import random

class RandomNumberGenerator:
    def __iter__(self):
        return self

    def __next__(self):
        return random.randint(1, 10)

rng = RandomNumberGenerator()
iter_obj = iter(rng)

print(next(iter_obj))  # 输出一个随机数
print(next(iter_obj))  # 输出另一个随机数
print(next(iter_obj))  # 又输出一个随机数

この例では、

__iter__() および __next__() メソッドを実装する RandomNumberGenerator クラスを定義します。 __iter__() メソッドは、反復子オブジェクト自体である self を返しますが、__next__() メソッドは呼び出されるたびに乱数を返します。次に、RandomNumberGenerator オブジェクト rng を作成し、それを iter() 関数に渡してイテレータ オブジェクト iter_obj を取得しました。最後に、next() 関数を使用して iter_obj 内の要素に 1 つずつアクセスします。出力結果はランダムに生成された値です。

要約すると、 iter() 関数は、反復可能なオブジェクトのイテレータを取得するための Python の非常に便利な関数です。 iter() 関数を使用すると、さまざまな反復可能なオブジェクトをイテレーターに変換し、要素に 1 つずつアクセスする操作を実現できます。 iter() 関数を使用する場合は、反復の完了後にエラーが発生しないように例外処理に注意する必要があります。渡されるのが反復可能オブジェクトか呼び出し可能オブジェクトかに関係なく、 iter() 関数は対応する反復子オブジェクトを返すことができ、反復子の要素には next() 関数を通じてアクセスできます。

以上がPython で iter() 関数を使用して反復可能オブジェクトのイテレータを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonアレイをどのようにスライスしますか?Pythonアレイをどのようにスライスしますか?May 01, 2025 am 12:18 AM

Pythonリストスライスの基本的な構文はリストです[start:stop:step]。 1.STARTは最初の要素インデックス、2。ストップは除外された最初の要素インデックスであり、3.ステップは要素間のステップサイズを決定します。スライスは、データを抽出するためだけでなく、リストを変更および反転させるためにも使用されます。

どのような状況で、リストは配列よりもパフォーマンスが向上しますか?どのような状況で、リストは配列よりもパフォーマンスが向上しますか?May 01, 2025 am 12:06 AM

ListSoutPerformArraysIn:1)ダイナミシジョンアンドフレーケンティオン/削除、2)ストーリングヘテロゼンダタ、および3)メモリ効率の装飾、ButmayhaveslightPerformancostsinceNASOPERATIONS。

PythonアレイをPythonリストに変換するにはどうすればよいですか?PythonアレイをPythonリストに変換するにはどうすればよいですか?May 01, 2025 am 12:05 AM

toconvertapythonarraytoalist、usetheList()constructororageneratorexpression.1)importhearraymoduleandcreateanarray.2)useList(arr)または[xforxinarr] toconvertoalistは、largedatatessを変えることを伴うものです。

Pythonにリストが存在する場合、配列を使用する目的は何ですか?Pythonにリストが存在する場合、配列を使用する目的は何ですか?May 01, 2025 am 12:04 AM

choosearraysoverlistsinperbetterperformance andmemoryeficiencyspecificscenarios.1)largeNumericaldatasets:Araysreducememoryusage.2)パフォーマンス - クリティカル操作:ArraysOfferSpeedBoostsfortsfortsclikeappendedoring.3)タイプリー:Arrayesenforc

リストの要素と配列を繰り返す方法を説明します。リストの要素と配列を繰り返す方法を説明します。May 01, 2025 am 12:01 AM

Pythonでは、ループに使用し、列挙し、包括的なリストを通過することができます。 Javaでは、従来のループを使用し、ループを強化してアレイを通過することができます。 1。Pythonリストトラバーサル方法は、ループ、列挙、およびリスト理解のためのものです。 2。Javaアレイトラバーサル法には、従来のループとループ用の強化が含まれます。

Python Switchステートメントとは何ですか?Python Switchステートメントとは何ですか?Apr 30, 2025 pm 02:08 PM

この記事では、バージョン3.10で導入されたPythonの新しい「マッチ」ステートメントについて説明します。これは、他の言語のスイッチステートメントに相当するものです。コードの読みやすさを向上させ、従来のif-elif-elよりもパフォーマンスの利点を提供します

Pythonの例外グループとは何ですか?Pythonの例外グループとは何ですか?Apr 30, 2025 pm 02:07 PM

Python 3.11の例外グループは、複数の例外を同時に処理することで、同時シナリオと複雑な操作でエラー管理を改善します。

Pythonの関数注釈とは何ですか?Pythonの関数注釈とは何ですか?Apr 30, 2025 pm 02:06 PM

Pythonの関数注釈は、タイプチェック、ドキュメント、およびIDEサポートの関数にメタデータを追加します。それらはコードの読みやすさ、メンテナンスを強化し、API開発、データサイエンス、ライブラリの作成において重要です。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター