list_of_input = map(float,[1,2,3])
print(list(list_of_input)[0])
print(list(list_of_input)[0])
IndexError:列表索引超出范围
为什么会出现此错误?
答案 0 :(得分:0)
映射到列表的转换仅完成一次,这意味着map是一个生成器对象,一旦将其转换为列表,它就会用尽:python 3: generator for map。因此,错误来自第二个打印语句,而不是第一个。
答案 1 :(得分:0)
map()
返回一个迭代器,而不是list
。当您第一次将此迭代器传递给list
时,它将消耗该迭代器,因此第二次您获得一个空的list
,因此出现IndexError。