python3中运行以下程序,报错<map object at 0x01690DF0>
list_1=[1,2,3,4,5,6]
def double_func(x):
return(x*2)
list_2=map(double_func,list_1)
print(list_2)
原因:python3中map()返回iterators类型,不再是list类型。进行list转换即可
list_1=[1,2,3,4,5,6]
def double_func(x):
return(x*2)
list_2=map(double_func,list_1)
print(list(list_2))
运行结果为[2, 4, 6, 8, 10, 12]
在Python3中,map()函数返回的是一个迭代器对象,而不是列表。当尝试打印这个对象时,会显示如<mapobjectat0x01690DF0>的内存地址。解决方法是在map()函数后添加list()进行转换,如`print(list(map(double_func, list_1)))`,这将正确输出[2, 4, 6, 8, 10, 12]。理解并适当地处理这种迭代器类型是Python3编程中的一个重要概念。
31万+

被折叠的 条评论
为什么被折叠?



