如何简单地从用空格或空格分隔的stdin读入输入

2024-09-29 17:14:35 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我在学Python, 在C++中,从STDIN中读取字符串,我只需做

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

但在python中,我必须使用

line = raw_input()

那么

x = line.split()

然后我必须循环遍历列表x来访问每个str到do_something(str)

这看起来像是很多代码,只是让每个字符串用空格或空格分隔 所以我的问题是,有更简单的方法吗?


Tags: 字符串代码列表inputstringrawstdinline
3条回答
map(do_something, line.split())

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)

没有真正的“更容易”的方法,因为Python没有内置的格式化的字符串函数,比如C++,^ ^ }。

也就是说,您可以通过组合操作来缩短代码:

for str in raw_input().split():
   do_something(str)

相关问题 更多 >

    热门问题