1

打代码打高尔夫球时,我想使用以下代码从标准输入读取几行数据

D:\>cat box.py
n=int(raw_input().split('=')[-1])
data=map(raw_input,range(n))
D:\>box.py
3
01
12
23

令我惊讶的是,每次从标准输入读取数据时,它都会不断回显一系列数字

在将上述代码更改为使用 LC 时,问题不存在。

D:\>cat box.py
n=int(raw_input().split('=')[-1])
data=[raw_input() for _ in range(n)]
D:\>box.py
3
1
2
3

知道可能是什么原因吗?

4

2 回答 2

4

raw_input() takes an optional argument, the prompt, that gets written to stdout. You are supplying that argument by your use of map().

于 2013-04-12T08:46:40.333 回答
-2

我认为原因是第二个代码块中有 for 循环,而第一个没有这样的限制

于 2013-04-12T08:48:47.690 回答