Fra*_*sco 16 python string string-formatting built-in
是否有一种pythonic方法来执行该str.strip()方法所做的事情,除了所有事件,而不仅仅是字符串开头和结尾处的事件?
例:
>> '::2012-05-14 18:10:20.856000::'.strip(' -.:')
>> '2012-05-14 18:10:20.856000'
Run Code Online (Sandbox Code Playgroud)
我想要
>> '::2012-05-14 18:10:20.856000::'.crazy_function(' -.:')
>> '20120514181020856000'
Run Code Online (Sandbox Code Playgroud)
Python是否为我提供了内置的crazy_function???
我可以轻松地以编程方式执行此操作,但我想知道是否有内置功能.找不到一个.谢谢您的帮助.
Bou*_*oud 23
使用此translate功能删除不需要的字符:
>>> '::2012-05-14 18:10:20.856000::'.translate(None, ' -.:')
'20120514181020856000'
Run Code Online (Sandbox Code Playgroud)
确保您的字符串是str类型而不是unicode,因为函数的参数将不相同.对于unicode,请使用以下语法; 它包括从字符构建unicode序号的dict以删除并将它们映射到None:
>>> u'::2012-05-14 18:10:20.856000::'.translate({ord(k):None for k in u' -.:'})
u'20120514181020856000'
Run Code Online (Sandbox Code Playgroud)
与性能比较的一些时间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
Run Code Online (Sandbox Code Playgroud)