虽然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
任何想法可能是什么原因?
答案 0 :(得分:4)
raw_input()
接受一个可选的参数,即提示,写入stdout。您通过使用map()
来提供该参数。
答案 1 :(得分:-2)
我认为原因是第二个代码块中有for循环,而第一个没有这样的限制