在Python中为什么对map进行list()就会变成空列表

img

这是因为map()返回值的本质是迭代器,只能迭代一次,第二次就为空的了
所以,你的第二行代码要用: x = list(x)

或者直接用: x = list(map(str,range(5)))

map()返回的是迭代对象,迭代对象只能遍历一次,
迭代对象遍历了一次之后内部的迭代指针指向最后一个元素之后,
第二次遍历时从迭代指针指向元素开始,自然就没有了

map的结果是迭代器,只能迭代一次,第二次就没啦