1. ホーム
  2. python

[解決済み] Pythonを使った文字列の各文字の繰り返し処理

2022-03-19 10:13:30

質問

C++では、以下のように std::string このように

std::string str = "Hello World!";

for (int i = 0; i < str.length(); ++i)
{
    std::cout << str[i] << std::endl;
}

Pythonで文字列を反復処理するには?

どのように解決するのですか?

ヨハネスさんのご指摘の通りです。

for c in "string":
    #do something with c

Python では、このように for loop という構文があります。

を例とします。 open("file.txt") はファイルオブジェクトを返し(そしてファイルを開き)、それを反復することでそのファイルの行を反復します。

with open(filename) as f:
    for line in f:
        # do something with line

これは魔法のように見えるかもしれませんが、その背後にある考え方はとてもシンプルです。

どんな種類のオブジェクトにも適用できる簡単なイテレータプロトコルがあり、それを使って for ループが動作します。

を定義するイテレータを実装するだけです。 next() メソッドを実装し __iter__ メソッドで反復可能なクラスにすることができます。(その __iter__ もちろん、イテレータオブジェクトを返す必要があります。 next() )

公式ドキュメントを見る