【问题标题】:how can i replace character in a string?如何替换字符串中的字符?
【发布时间】:2022-01-03 02:09:14
【问题描述】:

嗨,我正在尝试模拟用户可能为一个单词输入的内容,即你好,所以基本上我已经将它打印到终端 _ _ _ _ _ 我想用“l”替换“_”并匹配它在字符串中的位置,这是我的代码

import re
str1="hello"
lettercheck="l"
a=re.search(lettercheck,str1)
span=(a.span())
print(span)
print(str1[span[0])
count=0
ab="_"
for char in str1:
    print(ab,end=" ")
    if lettercheck==char
    count +=1
    replacechar=str1.replace(ab,str1[span[0]])
    print(replacechar)

打印出来 _ _ _ 你好 _ 你好 _ 谁能解释我在这里出错的地方以及我能做些什么来解决它?请注意,计数只是关于如何计时字母重复出现的时间,我稍后将在我的代码中处理这只是一个尝试了解正在发生的事情的示例

【问题讨论】:

  • 您发布的代码没有打印出任何语法错误
  • 嗨,你能帮我输入和所需的输出吗?
  • 固定语法@ErikMcKelvey
  • 输入将是一个字符串,我有一个字符串列表,我随机调用这些字符串以获得上述示例所需的输出为 _ _ l l _ @SakshiSharma

标签: python spyder


【解决方案1】:

所有的搜索和替换都可以简化。这里不需要正则表达式库:

str1 = 'hello'
lettercheck = "l"

positions = [pos for pos, char in enumerate(str1) if char == lettercheck]

for i in range(len(str1)):
    if i in positions:
        print(lettercheck, end='')
    else:
        print('_', end='')

返回:

__ll_

【讨论】:

    【解决方案2】:

    也许这会有所帮助:

    import re
    str1 = 'hello'
    specific_char = 'l'
    print(re.sub(r'[^'+specific_char+']', '_', str1))
    

    这会将除特定字符(例如 l)之外的所有内容替换为下划线“_”。

    【讨论】:

      【解决方案3】:

      这是将每个字符替换为“_”而不是指定字符的更简单有效的方法。

      str1 = 'hello'
      lettercheck = "l"
      result = ""
      for i in range(len(str1)):
          if str1[i] != lettercheck:
              result += '_'
          else:
              result += lettercheck
      print(result)
      

      【讨论】:

        猜你喜欢
        • 2023-04-09
        • 1970-01-01
        • 2013-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多