gpt4 book ai didi

python - 从字符串中删除所有出现的多个字符

转载 作者:IT老高 更新时间:2023-10-28 21:18:43 26 4
gpt4 key购买 nike

有没有pythonic 的方法来做str.strip()方法会,除了所有次出现,而不仅仅是字符串开头和结尾的那些?

例子:

>> '::2012-05-14 18:10:20.856000::'.strip(' -.:')
>> '2012-05-14 18:10:20.856000'

我想要

>> '::2012-05-14 18:10:20.856000::'.crazy_function(' -.:')
>> '20120514181020856000'

Python 是否为我提供了内置的 crazy_function???

我可以轻松地以编程方式完成,但我想知道是否有内置的。找不到一个。感谢您的帮助。

最佳答案

使用 translate删除不需要的字符的功能:

>>> '::2012-05-14 18:10:20.856000::'.translate(None, ' -.:')
'20120514181020856000'

确保您的字符串是 str 类型而不是 unicode,因为函数的参数不会相同。对于 unicode,使用以下语法;它包括从要删除的字符中构建 unicode 序数的字典并将它们映射到 None:

>>> u'::2012-05-14 18:10:20.856000::'.translate({ord(k):None for k in u' -.:'})
u'20120514181020856000'

re进行性能比较的一些时间安排:

>>> timeit.timeit("""re.sub(r"[ -.:]", r"", "'::2012-05-14 18:10:20.856000::'")""","import re")
7.352270301875713
>>> timeit.timeit("""'::2012-05-14 18:10:20.856000::'.translate(None, ' -.:')""")
0.5894893344550951

关于python - 从字符串中删除所有出现的多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10591337/

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