如何在python33中使用filter函数
我现在开始学习python,我对过滤器函数有问题 如果我跑如何在python33中使用filter函数,python,list,Python,List,我现在开始学习python,我对过滤器函数有问题 如果我跑 list=list(range(10)) def f(x): return x % 2 != 0 print(((filter(f,list)))) 我会得到结果的 filter object at 0x00000000028B4E10 Process finished with exit code 0 如果我把代码修改为 list=list(range(10)) def f(x): return x % 2 != 0 p
list=list(range(10))
def f(x): return x % 2 != 0
print(((filter(f,list))))
我会得到结果的
filter object at 0x00000000028B4E10
Process finished with exit code 0
如果我把代码修改为
list=list(range(10))
def f(x): return x % 2 != 0
print(list(filter(f,list)))
我得到的结果将是
Traceback (most recent call last):
File "C:/Users/Vo Quang Hoa/PycharmProjects/HelloWorld/Hello.py", line 6, in <module>
print(list(filter(f,list)))
TypeError: 'list' object is not callable
Process finished with exit code 1
发生了什么事。如何获取列表1 3 5 7 9
感谢您的帮助。您重新命名了列表,赋予了它不同的值。不要这样做,你隐藏了内置类型。将代码更改为使用其他名称:
some_list = list(range(10))
def f(x): return x % 2 != 0
print(list(filter(f, some_list)))
然后过滤器就可以正常工作了。您重命名了列表,给它一个不同的值。不要这样做,你隐藏了内置类型。将代码更改为使用其他名称:
some_list = list(range(10))
def f(x): return x % 2 != 0
print(list(filter(f, some_list)))
然后过滤器工作正常。您的主要问题是调用了列表变量,嗯,list。您不能使用与其他对象相同的名称!将您的列表命名为其他名称,和/或使用类似大写的命名约定
Fred=list(range(10))
def f(x): return x % 2 != 0
print(list(filter(f,Fred)))
你的主要问题是你调用了你的列表变量,嗯,列表。您不能使用与其他对象相同的名称!将您的列表命名为其他名称,和/或使用类似大写的命名约定
Fred=list(range(10))
def f(x): return x % 2 != 0
print(list(filter(f,Fred)))
哦,我是诺布。谢谢你的帮助。哦,我是诺布。感谢您的帮助。Python PEP 8样式指南建议您使用小写字母和下划线作为本地名称。@MartijnPieters:true抱歉,这应该是真的。若你们的名字中只有一个单词,那个么这个列表就会产生,而这个列表不会和一个内置词发生冲突。但我同意这会让人非常困惑。在普通代码中,您可能会想出比列表更好的名称。在这种情况下,也许范围列表就足够了。Python PEP 8样式指南建议您使用小写字母和下划线作为本地名称。@MartijnPieters:true抱歉,这应该是真的。若你们的名字中只有一个单词,那个么这个列表就会产生,而这个列表不会和一个内置词发生冲突。但我同意这会让人非常困惑。在普通代码中,您可能会想出比列表更好的名称。在这种情况下,也许范围列表就足够了。