ホームページ  >  記事  >  バックエンド開発  >  Pythonの反復と反復オブジェクトとは何ですか?

Pythonの反復と反復オブジェクトとは何ですか?

乌拉乌拉~
乌拉乌拉~オリジナル
2018-08-22 16:18:044063ブラウズ

次の記事では、Python の iteration について学習します。反復の意味と、Python プログラミングにおいて反復がどのような役割を果たすことができるかを理解します。

Python の反復とは何ですか

リストまたはタプルが指定された場合、for ループを通じてリストまたはタプルを走査できます。これは、このようなものです。 traversaliteration (反復) と呼ばれます。

(Python では、反復は for...in を通じて行われます)

Python の for ループは C の for ループよりも抽象的です。これは、Python の for ループを使用できないためです。リストまたはタプルだけでなく、他の

反復可能オブジェクトにも適用されます。

(list、tuple、dict、set、str など、for ループ内で直接使用できるオブジェクトを総称して反復可能オブジェクト (Iterable) と呼びます)

list このデータ型には添字がありますが、他の多くのデータ型には添字がありませんが、

python の iterable object である限り、そのデータ型に関係なく反復できます。たとえば、 dict は反復できます:

>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> for key in d:...     print(key)
...
a
c
b

dict はリストの順序で格納されないため、反復された結果の順序は異なる可能性があります。

デフォルトでは、dict はキーを反復処理します。値を反復したい場合は d.values() の for value を使用でき、キーと値を同時に反復したい場合は d.items() の for k, v を使用できます。

文字列は反復可能なオブジェクトでもあるため、for ループでも使用できます。

>>> for ch in 'ABC':
...     print(ch)
...ABC

したがって、for ループを使用するときは、それが反復可能なオブジェクトに作用する限り、for ループはこれは通常どおり実行でき、オブジェクトがリストであるか別のデータ型であるかはあまり気にしません。

それでは、オブジェクトが反復可能オブジェクトかどうかを判断するにはどうすればよいでしょうか?この方法は、コレクション モジュールの Iterable 型によって判断します。

>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False

最後の小さな質問ですが、リストに対して Java に似た添え字ループを実装したい場合はどうすればよいでしょうか。 Python の組み込み列挙関数を使用すると、リストをインデックスと要素のペアに変換できるため、インデックスと要素自体を for ループ内で同時に反復できます。

>>> for i, value in enumerate(['A', 'B', 'C']):
...     print(i, value)
...
0 A
1 B
2 C

上記の for ループでは、 2 つの変数を同時に参照することは、次のようなコードのように Python では非常に一般的です:

>>> for x, y in [(1, 1), (2, 4), (3, 9)]:
...     print(x, y)
...
1 1
2 4
3 9

以上がこの記事で説明する内容のすべてです この記事では主に iteration と iteration オブジェクトについて紹介します

python 知識があれば、上記の内容を理解するために情報を活用していただければ幸いです。この記事で説明したことがあなたのお役に立ち、Python の学習が容易になることを願っています。

関連知識の詳細については、php 中国語 Web サイトの

Python チュートリアル 列を参照してください。

以上がPythonの反復と反復オブジェクトとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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