为什么用IDLE或者Eclipse看不到FIlter的返回值呢,得到的是个地址,求解,谢谢
为什么用IDLE或者Eclipse看不到FIlter的返回值呢,得到的是个地址,求解,谢谢
为什么用IDLE或者Eclipse看不到FIlter的返回值呢,得到的是个地址,求解,谢谢
2017-01-11
我回答过你上一个问题的哈哈。是这样的,再上一个问题截图中我发现你用的是Python3版本。你之所以会返回filter的地址是因为P3的版本和P2版本的差异。这样的好出是返回的是一个地址,而不再需要返回一个list对象,节省了程序运行成本,也就是时间和内存。如果你想显示出filter地址里的列表,那就用list()去转换它,如下:
print (list(filter(lambda s:s and len(s.strip()) > 0, ['test', None, '', 'str', ' ', 'END'])))
这样就会输出列表。结果是:['test', 'str', 'END']
如果想单独输出。如下:
a=filter(lambda s:s and len(s.strip()) > 0, ['test', None, '', 'str', ' ', 'END']) for i in a: print (i)
结果是:
test
str
END
加油哦,共勉~
举报