为了账号安全,请及时绑定邮箱和手机立即绑定

<filter object at 0x0000000003151BA8>疑问

import math
def is_sqrt(x):
    num=math.sqrt(x)
    return math.ceil(num)==num
print (filter(is_sqrt, range(1, 101)))

为什么我在本地编译器执行上述代码只输出下面的信息,而不是输出[1, 4, 9, 16, 25, 36, 49, 64, 81, 100],请问如何修改

<filter object at 0x0000000003151BA8>

正在回答

1 回答

你使用的是 Python 3 吗?

得到的结果是一个 iteration, 可迭代的东西, 用 list 函数转换下。

list(filter(lambda x: x>5, [1,5,7,8,9]))
[7, 8, 9]


0 回复 有任何疑惑可以回复我~
#1

赛雷feng 提问者

是的,完美解决,非常感谢!
2016-09-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

<filter object at 0x0000000003151BA8>疑问

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信