0

我已经完成了这段代码,但我无法将字母“t”——小写和大写——替换为空格。我的代码格式应该相同,但我只需要帮助用空格替换“t”。例如,“The book on the table thttg”应该看起来像“he book on heable h g”。因此,几乎应该隐藏“t”。

def remoeT(aStr):
    userInput = ""
    while True:
        string = raw_input("Enter a word/sentence you want to process:")
        if string == "Quit":
            return userInput

        userInput = userInput + string
        if aStr != False:
            while "t" in userInput:
                index = userInput.find("t")
                userInput = userInput[:index] + userInput[index+1:]
        while "T" in userInput:
            index = userInput.find("T")
            userInput = userInput[:index] + userInput[index+1:]
4

3 回答 3

5

要将所有出现的tand替换T为 string 中的空格input,请使用以下命令:

input = input.replace('t', ' ').replace('T', ' ')

或者使用正则表达式:

import re
input = re.sub('[tT]', ' ', input)
于 2012-09-27T22:15:11.240 回答
4

为什么不简单地使用替换功能?

s = 'The book on the table thttg it Tops! Truely'
s.replace('t', ' ').replace('T', ' ')

产量:

' he book on  he  able  h  g i   ops!  ruely'

可能不如使用正则表达式好,但可以使用。

然而,这似乎比正则表达式方法快得多(感谢@JoranBeasley 激励基准测试):

timeit -n 100000 re.sub('[tT]', ' ', s)
100000 loops, best of 3: 3.76 us per loop

timeit -n 100000 s.replace('t', ' ').replace('T', ' ')
100000 loops, best of 3: 546 ns per loop
于 2012-09-27T22:14:27.793 回答
3

使用正则表达式:

>>> import re
>>> st = "this is a sample input with a capital T too."
>>> re.sub('[tT]', ' ', st)
' his is a sample inpu  wi h a capi al    oo.'

另外,不要将变量命名为“字符串”;有一个“字符串”类会隐藏。

于 2012-09-27T22:14:01.757 回答