【问题标题】:Python Beginners 3 - How do I create a loop that does this?Python Beginners 3 - 如何创建一个执行此操作的循环?
【发布时间】:2013-09-08 03:45:05
【问题描述】:

我想创建一个遍历字符串的循环,如果字母“r”跟在元音后面,它将删除元音。例如:

Enter word: Cracker
New word: Crackr

Enter word: Flirk
New word: Flrk

我已经有办法做到这一点,但不是很整洁。我只是想知道如何提高自己。我的做法是:

  if "ar" in s or "er" in s or "ir" in s or "or" in s or "ur" in s:
      s = s.replace("ar","r")
      s = s.replace("er","r")
      s = s.replace("ir","r")
      s = s.replace("or","r")
      s = s.replace("ur","r")

谢谢

【问题讨论】:

    标签: string loops python-3.x replace


    【解决方案1】:

    您可以为此使用正则表达式:

    import re
    
    s = re.sub("[aeiou]r", "r", s) # remove a vowel preceding `r`
    

    【讨论】:

    • 他想要一个循环。
    • @RamchandraApte: for vowel in "aeiou": s = s.replace(vowel + 'r', 'r') 循环在这里不太合适(注意:如果'r' 之前有多个元音,它可能会产生不同的结果)。
    猜你喜欢
    • 2023-01-25
    • 2021-11-11
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 2015-02-12
    • 1970-01-01
    相关资源
    最近更新 更多