使用Python IDLE 3.5.0 shell。根据我对内置“过滤器”函数的理解,它将返回一个列表,元组或字符串,具体取决于您传递给它的内容。那么,为什么下面工作的第一项任务,而不是第二(以下简称“>>>的仅仅是交互式Python提示)为什么foo = filter(...)返回一个<过滤器对象>,而不是一个列表?
>>> def greetings():
return "hello"
>>> hesaid = greetings()
>>> print(hesaid)
hello
>>>
>>> shesaid = filter(greetings(), ["hello", "goodbye"])
>>> print(shesaid)
<filter object at 0x02B8E410>
我的机器上,'帮助(过滤器)'说,它返回一个迭代器,而不是一个列表或元组或字符串。您可能正在查看旧版Python的文档。无论如何,即使在旧版本中,你的'filter'表达式也不起作用,因为'filter'的第一个参数必须是可调用的,'greetings()'返回的值不是可调用的。 – Kevin
我正在使用一个旧的教程,它没有声明Python的版本。谢谢凯文......虽然我不明白(刚开始这里: - )......你这里的意思是:“因为过滤器的第一个参数必须是可调用的,并且由greetings()返回的值不是一个可调用的“。 – Margarita
你已经让我自学了下一个可以召唤的东西..已经在论坛和其他地方发现了一些主题。再次感谢! (试图编辑以前的评论,但StackOverflow不允许... – Margarita