【问题标题】:Multiple replacements多次替换
【发布时间】:2023-02-05 03:13:44
【问题描述】:

我希望用户能够输入多个他们想要删除的字符。它有效,但仅当输入一个字符时。

string = input("Please enter a sentence: ")
removing_chars = input("Please enter the characters you would like to remove: ")
replacements = [(removing_chars, "")]

for char, replacement in replacements:
    if char in string:
        string = string.replace(char, replacement)

print(string)

【问题讨论】:

  • 如果以下任一答案解决了您的问题,那么您应该将最能帮助您的答案标记为正确。这将有助于指导其他人将来遇到同样的问题。

标签: python


【解决方案1】:

问题是您将 removing_chars 视为始终是单个字符。

例如,如果 removing_chars'abc',那么 replacements 将是 [('abc', '')],而它应该是 [('a', ''), ('b', ''), ('c', '')]

要解决此问题,请尝试使用列表理解来遍历 removing_chars 中的每个字符并创建替换元组。像这样:

string = input("Please enter a sentence: ")
removing_chars = input("Please enter the characters you would like to remove: ")
replacements = [(char, "") for char in removing_chars]

for char, replacement in replacements:
    if char in string:
        string = string.replace(char, replacement)

print(string)

【讨论】:

  • @DanielHao 那是缩进输出,对吧?
  • 是的。单身sentence 完美。 +1(也许可以概括一点) ...; ;-)
【解决方案2】:

当你遍历replacements时,charremoving_chars作为值。然后,当您检查 if char in string 时,Python 会检查 removing_chars 是否是 string 的子字符串。要实际单独删除字符,您必须遍历 removing_chars 才能获取单个字符。

【讨论】:

    猜你喜欢
    • 2011-07-24
    • 1970-01-01
    • 2015-05-19
    • 2011-03-18
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2011-08-07
    相关资源
    最近更新 更多