このページの目的は、2 つの反復プロトコルのダイナミクスを示すことです:
- 反復可能
- イテレーター
1. ただし、最初に (紛らわしい類似の単語に追加するため)、反復について説明しましょう
- 反復は、もちろん、ソースから項目を 1 つずつ取得し、それぞれに対して順番に何かを行うことです
- Python では、これは一般的に次のように使用されます。
- a) for/while ループと
- b) 内包表記
- デフォルトでは、これらの構造は構造全体を反復します
- ただし、ジェネレーター のように、よりきめの細かい制御が必要になる場合もあります。
- このために、2 つの重要な概念/プロトコルがあり、その上に Python の大部分が構築されています。
- a) 反復可能なオブジェクト
- b) イテレータオブジェクト
- 両方とも標準の Python プロトコルに反映されます
- これは特別なことではありません。実際、for/while ループと内包表記は反復プロトコルのこれらの下位レベルの要素に直接構築されます
2. ITER() メソッドは反復可能オブジェクトから反復子を作成します
- 反復可能なオブジェクト (オブジェクトのコレクションまたはストリーム) は、組み込みの iter() 関数 に渡すことができる任意のオブジェクトです。
- 組み込み iter() 関数が渡されると、渡された型の イテレータ オブジェクト が返されます。つまり、文字列イテレータは次のように作成されます。
>>> example_iterator = iter('abc') >>> example_iterator <str_iterator object at> </str_iterator>
- イテレータは、基礎となるシーケンシャル データセット への シーケンシャル (ランダムではありません!) アクセスを提供する暗黙的なシーケンス オブジェクトであることに注意してください。
- たとえば、range オブジェクト自体はイテレータではありません
- 反復子は、基礎となるシリーズの任意の要素へのアクセスを許可しません
- シリーズの 次の 要素へのアクセスのみを提供します
- それらは順次アクセスを提供します
<!-- THIS IS NOT AN ITERATOR --> >>> r = range(10)[5] >>> r 5
3. NEXT() 関数はイテレータから次の値を返します
- 組み込み next() には iterator オブジェクトが必要です。コレクションの反復で次の値を返します
- イテレータは 2 つのコンポーネントで構成されます:
- コレクションの次の要素を取得するメカニズム
- シリーズの終了を知らせるメカニズム
オブジェクト システムが組み込まれたプログラミング言語では、この抽象化は通常、クラスによって実装できる特定のインターフェイスに対応します
- next() を使用すると、最初から最後までシリーズ全体ではなく、リクエストに応じて各項目を順番に検討できます
- 反復子インターフェイスには 2 つのメッセージが含まれています
- next → 次の要素のクエリ
- iter → イテレータを返します
- 制約: イテレータは 1 回反復可能
4. クラスルームの例 - 反復可能から反復子、停止例外まで
- Python は、StopIteration タイプの 例外 を自由に発生させます。
>>> example_iterator = iter('abc') >>> example_iterator <str_iterator object at> </str_iterator>
5. 実際の例 - 複数のコマンドライン入力の単体テスト
- リスト ["20.01", "y"] などの反復可能なオブジェクトを定義/取得します
- 反復可能なオブジェクトを iter() に渡す → 反復子オブジェクトを作成する
- コード内で入力関数が呼び出されるたびに、反復子オブジェクトを next() に渡してリストの次の値を生成します。
<!-- THIS IS NOT AN ITERATOR --> >>> r = range(10)[5] >>> r 5
- 初めて input() に遭遇すると、「20.01」値が渡されます。
- 2回目は「y」です
- 3 回目は例外となります
6. リンク
- https://mypy.readthedocs.io/en/stable/protocols.html#iteration-protocols
- 5.2 暗黙的なシーケンス - Python の SICP
以上がPython の Iterable と Iterator の説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

slicingapythonlistisdoneusingtheyntaxlist [start:stop:step] .hore'showitworks:1)startisthe indexofthefirstelementtoinclude.2)spotisthe indexofthefirmenttoeexclude.3)staptistheincrementbetbetinelements

numpyallows forvariousoperationsonarrays:1)basicarithmeticlikeaddition、減算、乗算、および分割; 2)AdvancedperationssuchasmatrixMultiplication;

Arraysinpython、特にnumpyandpandas、aresentialfordataanalysis、offeringspeedandeficiency.1)numpyarraysenable numpyarraysenable handling forlaredatasents andcomplexoperationslikemoverages.2)Pandasextendsnumpy'scapabivitieswithdataframesfortruc

listsandnumpyarraysinpythonhavedifferentmemoryfootprints:listsaremoreflexiblellessmemory-efficient、whileenumpyarraysaraysareoptimizedfornumericaldata.1)listsstorereferencesto objects、with whowedaround64byteson64-bitedatigu

toensurepythonscriptsbehaveCorrectlyAcrossDevelosment、staging、and Production、usetheseStrategies:1)環境variablesforsimplestetings、2)configurationfilesforcomplexsetups、and3)dynamicloadingforadaptability.eachtododododododofersuniquebentandrequiresca

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

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

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


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

メモ帳++7.3.1
使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









