如何通过取 3 行并将其变成 1 个字符串来保存 space

How to save space by taking 3 lines and turning it into 1 string

我试图通过将 3 行放入 1 个字符串来节省 space。任何人都可以帮我解决这个问题吗?我已经尝试过了,但是没有用。

sentence = sentence.replace ("(", "" + ")","")

def main():
    sentence = input("Enter a 10 digit telephonenumber in the format (XXX)XXX-XXXX: ")
    sentence = sentence.replace ("(", "")
    sentence = sentence.replace (")", "")
    sentence = sentence.replace ("-", "")
    print(sentence)

main()

你可以像这样在一行中完成:

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

链接这么多 replace() 相当难看。您可以使用正则表达式

import re;
sentence = input("Enter a 10 digit telephonenumber in the format (XXX)XXX-XXXX: ")
sentence = re.sub('[-\(\)]', '', sentence)

您也可以使用translate()

sentence.translate({ord(i):None for i in '()-'})

因为替换方法 returns 一个字符串你可以简单地做另一个 替换返回的字符串。像 sentence.replace().replace().replace():

这样的东西
sentence = sentence.replace("(", "").replace(")", "").replace("-", "")

从字符串中去除不需要的字符的快速方法是 str.translate:

>>> '(123)456-7890'.translate(None, '()-')
'1234567890'

Python 3接口:

>>> '(123)456-7890'.translate(dict.fromkeys(ord(c) for c in '()-'))
'1234567890'

您可以在一行中循环执行。如果你有很多替换,我建议在一个循环中做,因为它可以很容易地添加更多,但如果只是少量,那么一行就可以了。

循环:

def main():
    sentence = input("Enter a 10 digit telephonenumber in the format (XXX)XXX-XXXX: ")
    remove_chars = list("()-")
    for char in remove_chars:
        sentence = sentence.replace(char, "")
    print(sentence)

单行:

def main():
    sentence = input("Enter a 10 digit telephonenumber in the format (XXX)XXX-XXXX: ")
    sentence = sentence.replace("(", "").replace(")", "").replace("-", "")
    print(sentence)

sentence = ''.join([c for c in sentence if c not in '(-)'])

我更喜欢这个而不是 replace 链接,因为它更容易扩展到更长的字符列表。