May*_*uel 0 python lambda filter
我有以下字符串,我想通过过滤X来解码
garbled = "IXXX aXXmX aXXXnXoXXXXXtXhXeXXXXrX sXXXXeXcXXXrXeXt mXXeXsXXXsXaXXXXXXgXeX!XX"
Run Code Online (Sandbox Code Playgroud)
我想过滤一下.我尝试了以下代码
message = filter(lambda x: garbled.remove(x) if x == "X", garbled)
Run Code Online (Sandbox Code Playgroud)
我没有这样做.我找到了另一个解决方案:
message = filter(lambda x: x != "X", garbled)
Run Code Online (Sandbox Code Playgroud)
但我仍然想知道为什么第一个不起作用.我可以修理吗?
(我是python btw的新手)谢谢!
您可以使用生成器表达式而不是 filter
>>> ''.join(i for i in garbled if i != 'X')
'I am another secret message!'
Run Code Online (Sandbox Code Playgroud)
如果你想使用filter你必须改变你lambda的
>>> ''.join(filter(lambda x: x != 'X', garbled))
'I am another secret message!'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
625 次 |
| 最近记录: |