我如何在 python 中使用过滤功能?
How i can use filter function in python?
我想删除字典中不需要的字符,如:$&@“”''!?,#%*=…
我只想要数字、字母和下划线。
如果您想清理字符串以删除所有特殊字符,请试试这个函数:
def sanitize(string):
outstr = ""
for char in string:
if char.isalpha() or char.isdigit() or char == "_":
outstr += char
return outstr
如果文本不是标点符号(你不想要),你可以做一个 lambda
that returns True
,除了 '_'
我们将使用 .replace("_","")
删除,然后使用 filter
函数将其应用到 list
,然后使用 ''
:[=24= 将其应用到 join
]
from string import punctuation
string_to_parse = "a$ ehl! th!s i$ "
parse=lambda letter:letter not in punctuation.replace("_",'')
stringcompleted = ''.join(filter(parse,string_to_parse))
print(stringcompleted)
输出:
'a ehl ths i '
你可以把它包装成一个函数,像这样:
>>> def parses(string_to_parse):
... parse=lambda letter:letter not in __import__("string").punctuation.replace("_",'')
... return ''.join(filter(parse,string_to_parse))
...
>>> parses("s/)+(=i;~q8cze%]*'y:|,f")
'siq8czeyf'
但这使用动态导入, 来自我的 test,导致时间是另一个的两倍所以我建议正常导入:
>>> def parses(string_to_parse):
... from string import punctuation
... parse=lambda letter:letter not in punctuation.replace("_",'')
... return ''.join(filter(parse,string_to_parse))
>>> parses("s/)+(=i;~q8cze%]*'y:|,f")
'siq8czeyf'
我想删除字典中不需要的字符,如:$&@“”''!?,#%*=…
我只想要数字、字母和下划线。
如果您想清理字符串以删除所有特殊字符,请试试这个函数:
def sanitize(string):
outstr = ""
for char in string:
if char.isalpha() or char.isdigit() or char == "_":
outstr += char
return outstr
如果文本不是标点符号(你不想要),你可以做一个 lambda
that returns True
,除了 '_'
我们将使用 .replace("_","")
删除,然后使用 filter
函数将其应用到 list
,然后使用 ''
:[=24= 将其应用到 join
]
from string import punctuation
string_to_parse = "a$ ehl! th!s i$ "
parse=lambda letter:letter not in punctuation.replace("_",'')
stringcompleted = ''.join(filter(parse,string_to_parse))
print(stringcompleted)
输出:
'a ehl ths i '
你可以把它包装成一个函数,像这样:
>>> def parses(string_to_parse):
... parse=lambda letter:letter not in __import__("string").punctuation.replace("_",'')
... return ''.join(filter(parse,string_to_parse))
...
>>> parses("s/)+(=i;~q8cze%]*'y:|,f")
'siq8czeyf'
但这使用动态导入, 来自我的 test,导致时间是另一个的两倍所以我建议正常导入:
>>> def parses(string_to_parse):
... from string import punctuation
... parse=lambda letter:letter not in punctuation.replace("_",'')
... return ''.join(filter(parse,string_to_parse))
>>> parses("s/)+(=i;~q8cze%]*'y:|,f")
'siq8czeyf'