2

こんにちは、Python を学習しようとしています。C++ では、stdin から文字列を読み込むだけです。

string str;
while (cin>>str)
    do_something(str)

しかし、Pythonでは、使用する必要があります

line = raw_input()

それから

x = line.split()

次に、リスト x をループして各 str にアクセスする必要がありますdo_something(str)

これは、スペースまたはスペースで区切られた各文字列を取得するためだけに多くのコードのように見えるので、私の質問は、より簡単な方法はありますか?

4

3 に答える 3

6

Python は、そのような特定の形式の入力を特別に扱いませんが、もちろん、そのための小さなジェネレータを作成するのは簡単です:

def fromcin(prompt=None):
  while True:
    try: line = raw_input(prompt)
    except EOFError: break
    for w in line.split(): yield w

次に、アプリケーション コードでforステートメントを使用してループします (通常は、アプリケーション コード レベルでループする最良の方法です)。

for w in fromcin():
  dosomething(w)
于 2010-08-12T02:06:51.620 に答える
0

Python には、C++ でiostream.

とはいえ、操作を組み合わせることでコードを短縮できます。

for str in raw_input().split():
   do_something(str)
于 2010-08-12T02:04:48.740 に答える
0
map(do_something, line.split())
于 2010-08-12T02:05:13.283 に答える