python程序,filter函数,2.7环境与3.1环境的不同
我写了一个小小的测试程序,如下:sequence=[1,2,3,4,5,6,7,8,9]defbigger_than_five(argument):'如果数字比5大,就返...
我写了一个小小的测试程序,如下:
sequence = [1,2,3,4,5,6,7,8,9]
def bigger_than_five(argument):
'如果数字比5大,就返回True'
if argument>5:
return True
else:
return False
print( filter(bigger_than_five,sequence))
在3.1环境下输出是一个对像:如下:
<filter object at 0x00F4C2B0>
在2.7环境下,输出就是我想要 的:
[6, 7, 8, 9]
这是为什么呢?如何就能在3.1下,也输出
[6, 7, 8, 9]呢?谢谢。 展开
sequence = [1,2,3,4,5,6,7,8,9]
def bigger_than_five(argument):
'如果数字比5大,就返回True'
if argument>5:
return True
else:
return False
print( filter(bigger_than_five,sequence))
在3.1环境下输出是一个对像:如下:
<filter object at 0x00F4C2B0>
在2.7环境下,输出就是我想要 的:
[6, 7, 8, 9]
这是为什么呢?如何就能在3.1下,也输出
[6, 7, 8, 9]呢?谢谢。 展开
3个回答
展开全部
3.x 返回的是一个iter obj,如果想返还【】,要加上list()
>>> list(filter(bigger_than_five,[1,10]))
[6, 7, 8, 9, 10]
其实3.x里面,达到你的这个目的的最简单的方法就直接:
>>> [x for x in range(11) if x > 5]
[6, 7, 8, 9, 10]
>>> list(filter(bigger_than_five,[1,10]))
[6, 7, 8, 9, 10]
其实3.x里面,达到你的这个目的的最简单的方法就直接:
>>> [x for x in range(11) if x > 5]
[6, 7, 8, 9, 10]
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用list函数转换
print( list(filter(bigger_than_five,sequence)))
print( list(filter(bigger_than_five,sequence)))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询