将raw_input()与map一起使用时发生意外回显

时间:2013-04-12 08:44:26

标签: python python-2.7

虽然Code golfing,但我使用以下代码从stdin读取几行数据

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

令我惊讶的是,每次从stdin读取数据时,它都会回显一系列数字

在更改上述代码以使用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

任何想法可能是什么原因?

2 个答案:

答案 0 :(得分:4)

raw_input()接受一个可选的参数,即提示,写入stdout。您通过使用map()来提供该参数。

答案 1 :(得分:-2)

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