如何通过python中的.replace方法将字符串替换为其他字符串?

时间:2018-11-28 19:51:27

标签: python string replace

我正在尝试执行以下操作:

用“ HA!”替换所有输入的字符串。它们的数量取决于字符串中有多少个字母(三个字母表示三个“ HA!”等)

代码:

stringI = input("Enter anything in here! It will become laughter after 
you do this! \n")
if stringI.isalpha:
    print(stringI.replace(stringI, "HA!", len(stringI)))

无论字符串中的字符数如何,它仅输出一个“ HA!”。

2 个答案:

答案 0 :(得分:0)

我可以想到两种方法:

  1. 遍历字符串以构建新字符串,用def make_ha(s): return "".join(["HA!" if c.isalpha() else c for c in s]) 代替字母

    from string import ascii_letters
    
    trans = str.maketrans(dict.fromkeys(ascii_letters, "HA!"))
    
    def make_ha2(s):
        return s.translate(trans)
    
  2. 制作翻译表,并使用该表翻译字符串

    print(make_ha("aaBB123"))  # HA!HA!HA!HA!123
    print(make_ha2("aaBB123")) # HA!HA!HA!HA!123
    

第一个比较容易理解,但是如果以后开始添加其他规则,第二个将变得不太复杂。后者也仅适用于ascii字母,而前者将根据字母字符的Unicode定义进行操作。

x1

答案 1 :(得分:0)

我同意上面的评论,因为您实际上只是在创建一个新字符串,所以实际上并不需要使用replace方法。这是一种很容易实现的简单方法:

>>> count = 0
>>> stringI = input("Enter anything in here! It will become laughter after you do this\n")
Enter anything in here! It will become laughter after you do this
test test
>>> count = 0
>>> for char in stringI:
...     if char.isalpha():
...         count += 1
... 
>>> str_builder = ''
>>> for ha in range(count):
...     str_builder += "HA! "
... 
>>> str_builder
'HA! HA! HA! HA! HA! HA! HA! HA! '
>>>