如何通过取3行并将其变成1个字符串来节省空间

时间:2016-12-08 23:21:51

标签: python modular

我试图通过将3行放入1个字符串来节省空间。任何人都可以帮助我,我已经尝试了这个,但它没有用。

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()

6 个答案:

答案 0 :(得分:1)

你可以这样做一行:

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

答案 1 :(得分:1)

链接这么多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 '()-'})

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

从字符串中删除不需要的字符的快速方法是使用str.translate

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

Python 3界面:

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

答案 4 :(得分:1)

您可以在一行循环中执行此操作。如果您有很多替换品,我建议您在循环中进行,因为它可以轻松添加更多,但如果它只是少量,那么一行就可以了。

循环:

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)

答案 5 :(得分:1)

rdd.mapValues(foo(_, "sr.no")

我更喜欢sentence = ''.join([c for c in sentence if c not in '(-)'])链接,因为它更容易扩展到更长的字符列表。