Python 将原始输入()与映射一起使用时出现意外回音

Python 将原始输入()与映射一起使用时出现意外回音,python,python-2.7,Python,Python 2.7,然而,我想到了使用下面的代码从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读取数据时,它都会不断重复一系列数字 D:\>cat box.py n=int(raw_input().split('=')[-1]) data=map(raw_input,range(n)) D

然而,我想到了使用下面的代码从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读取数据时,它都会不断重复一系列数字

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

知道原因是什么吗?

接受一个可选参数,即prompt,该参数被写入stdout。你是通过使用
map()
来提供这个论点的,我认为原因是第二个代码块中有for循环,而第一个代码块没有这样的限制,为什么不:
data=[raw\u input()]for[1]*n]
?@Bakuriu更好:
data=map(raw\u input,[']*n)
,除非你澄清你的答案,这是错误的,所以这就是你被否决的原因。