2016-11-22 98 views
0

所以,我需要從我的代碼過濾空間,所以我這樣做:爲什麼我的過濾功能不起作用?

def diagramas(mens): 
    print(filter(lambda x: x != ' ', mens)) 

我用「OLA佩德羅」的男子,但它返回:

<filter object at 0x03DC38F0> 

而不是「olapedro」 。爲什麼它不起作用?

回答

0

filter用於在傳遞一個字符串時返回一個字符串,在Python 2中傳遞一個列表時的一個列表等......這很有用。

但是,這已經改變了python 3.現在它返回一個迭代器,它也有一些優點,但不是在你目前的情況。

2級可能的解決方法:

1:從迭代

print("".join(filter(lambda x: x != ' ', mens))) 

2重建的字符串:使用gencomp代替過濾器的(更lisible:沒有過濾器,沒有拉姆達)

print("".join(x for x in mens if x!=' ')) 
相關問題