python初学者有一点疑问

JustoneRookie 2018-02-11 09:46:34
a=[1,2,3,4,5,6,7,8]
print(a)
b=filter(lambda x:x>3,a)
print(b)
为什么第一个打印出来是列表而第二个打印是b的地址值
...全文
2343 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
echo_susu 2018-02-27
  • 打赏
  • 举报
回复
4 楼是正确答案 可以 print(type(b)) 看一下 b 的类型
notback 2018-02-22
  • 打赏
  • 举报
回复
python3 里面map filter 都不是直接返回list 需要用list()转换一下。
battlelyt 2018-02-20
  • 打赏
  • 举报
回复
因为filter返回一个迭代器
混沌鳄鱼 2018-02-11
  • 打赏
  • 举报
回复
在Python2.X里 filter()返回一个list 在Python3.x 里 filter()返回一个迭代器。 楼主用的是python3.6吧
oyljerry 2018-02-11
  • 打赏
  • 举报
回复

In [22]: a=[1,2,3,4,5,6,7,8]      
                                  
In [23]: b=filter(lambda x:x>3,a) 
                                  
In [24]: type(b)                  
Out[24]: list                     
                                  
In [25]: print(b)                 
[4, 5, 6, 7, 8]                   
kuangbao9 2018-02-11
  • 打赏
  • 举报
回复
这你要看filter函数返回类型是啥呀。
lee2601 2018-02-11
  • 打赏
  • 举报
回复
这样就可以: a = [1,2,3,4,5,6,7,8] print(a) b = list(filter(lambda x:x>3,a)) print(b)

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧