gpt4 book ai didi

python - 使用 lambda 函数实现多个字符串 replace()

转载 作者:行者123 更新时间:2023-11-28 16:51:15 25 4
gpt4 key购买 nike

我发现大量的解决方案在没有 lambda 的情况下完全可以做我想做的事情......但我今天正在学习 lambda......

我有一个字符串 stri,我正在尝试替换 stri 中的一些字符,这些字符都存储在字典中。

bad_chars={"\newline":"","\n": "", "\b":"", "\f":"", "\r":"", "\t":"", "\v":"", "\0x00":""} 然后我想打印 stri 所有这些都很漂亮和空丑陋的人物。我当前的代码多次打印 stri

format_ugly = lambda stri: [ stri.replace(i,j) for i,j in bad_chars.iteritems()]

有没有办法让它打印一次,并且只用 1 个 lambda 函数?

最佳答案

如果你真的想要,你可以在其中强制使用 lambda 函数:

print ''.join(map(lambda x: bad_chars.get(x, x), stri))

但实际上完全没有必要在这里使用 lambda 函数。您只需要:

print ''.join(bad_chars.get(x, x) for x in stri)

此解决方案也是线性时间(即 O(n)),而所有其他解决方案都可能是二次的,因为它们涉及扫描整个字符串以替换每个值 O(n*m),其中 m 是 bad_chars 字典。

示例:

bad_chars= {"\newline":" ","\n": " ", "\b":" ", "\f":" ", "\r":" ", "\t":" ", "\v":" ", "\0x00":" "}
stri = "a \b string\n with \t lots of \v bad chars"
print ''.join(bad_chars.get(x, x) for x in stri)

输出:

a   string  with   lots of   bad chars

关于python - 使用 lambda 函数实现多个字符串 replace(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7134360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com