我現在開始學習python,我遇到了過濾器函數的問題。如何在python中使用過濾器函數33
如果我運行
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 感謝您的幫助。
Python PEP 8樣式指南建議您使用lower_case_with_underscores作爲本地名稱。 – 2013-03-10 12:09:48
@MartijnPieters:真(對不起,那應該是真的)。如果你的名字中只有一個單詞,那麼這會導致'list',而'List'不會與內建的相沖突。但我同意這會令人非常困惑。 – cdarke 2013-03-10 12:13:37
在*正常*代碼中,您可能會想出比'list'更好的名稱。在這種情況下,或許'range_list'就足夠了。 – 2013-03-10 12:15:13