通过列表构造器构造地图对象时,Python3发生错误

时间:2018-09-08 07:19:25

标签: python python-3.x list dictionary

list_of_input = map(float,[1,2,3]) print(list(list_of_input)[0]) print(list(list_of_input)[0])

IndexError:列表索引超出范围

为什么会出现此错误?

2 个答案:

答案 0 :(得分:0)

映射到列表的转换仅完成一次,这意味着map是一个生成器对象,一旦将其转换为列表,它就会用尽:python 3: generator for map。因此,错误来自第二个打印语句,而不是第一个。

答案 1 :(得分:0)

在Python 3中,

map()返回一个迭代器,而不是list。当您第一次将此迭代器传递给list时,它将消耗该迭代器,因此第二次您获得一个空的list,因此出现IndexError。