gpt4 book ai didi

python - 有没有更有效的方法将此电话号码转换为纯文本?

转载 作者:行者123 更新时间:2023-11-28 19:33:27 26 4
gpt4 key购买 nike

我想将第 6 位和第 7 位之间带有括号和连字符的电话号码转换为无格式的 10 个数字。这段代码可以解决问题,但它很笨拙,我想知道是否有更有效的方法?

谢谢!

phone_number = "(251) 342-7344"

phone_number=phone_number.replace("(","")
phone_number=phone_number.replace(")","")
phone_number=phone_number.replace(" ","")
phone_number=phone_number.replace("-","")

print phone_number

最佳答案

你可以使用str.translate:

>>> from string import punctuation,whitespace
>>> strs = "(251) 342-7344"
>>> strs.translate(None, punctuation+whitespace)
'2513427344'

使用str.isdigitstr.join:

>>> "".join([x for x in strs if x.isdigit()])
'2513427344'

时间比较:

>>> strs = "(251) 342-7344"*1000
>>> %timeit strs.translate(None, punctuation+whitespace)
10000 loops, best of 3: 116 us per loop #clear winner
>>> %timeit "".join([x for x in strs if x.isdigit()])
100 loops, best of 3: 4.42 ms per loop
>>> %timeit re.sub(r'[^\d]', '', strs)
100 loops, best of 3: 2.19 ms per loop

关于python - 有没有更有效的方法将此电话号码转换为纯文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17407303/

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