Python有一些篩選方法,它按照某些標準篩選所需的輸出,如下例所示。過濾如何在Python中工作?
>>> s = "some\x00string. with\x15 funny characters"
>>> import string
>>> printable = set(string.printable)
>>> filter(lambda x: x in printable, s)
'somestring. with funny characters'
該示例取自link。現在,當我嘗試在Python IDE中做類似的事情時,它確實返回結果'somestring. with funny characters'
事實上,它返回這個<filter object at 0x0000020E1792EC50>
。在IDE中,我不能使用簡單的輸入,因此我在過濾時使用打印來運行整個代碼。我在哪裏做錯了?謝謝。
其實在python2'過濾器'特殊情況下的字符串!否則'filter(lambda x:True,「abc」)'的結果是'['a','b','c']'但實際上是'abc'。 – Bakuriu
要正確,Python 2中的過濾器返回可以返回列表,元組或字符串。 –
@BurhanKhalid這不是事實。特殊情況下'tuple'和'str'。但例如'filter(lambda x:True,{1,2,3})== [1,2,3]'所以'set's被轉換爲'list's。另外如果你有一個'namedtuple',它將被轉換成一個普通的'tuple'等。 – Bakuriu