首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python string.replace()不替换某些字符

Python string.replace()不替换某些字符
EN

Stack Overflow用户
提问于 2021-03-11 19:45:44
回答 5查看 511关注 0票数 3
代码语言:javascript
运行
复制
def replace_at_index(string, index):
    print (string.replace(string[index], "-", 1))

这是我用给定索引替换字符的当前代码。

"Hous-e"

  • string

  • string
  • string "House“与Index 4产生”Hous-
  • string“
  • string "Housee”与Index 5生产 "Houseed“,Index 6生产"Housee-"
    • string "Houseed”,Index 5生产"Hous-ed"

不知道它为什么要这么做。我想要的结果是它取代给定的指数,在“侯赛”指数5的情况下,该指数将是"House-“

EN

回答 5

Stack Overflow用户

发布于 2021-03-11 19:53:50

这是一次黑客攻击,但有效:

代码语言:javascript
运行
复制
def replace_at_index(string, index):
   ls = list(string)
   ls[index] = "-"
   s = "".join(ls)
   print(s)
票数 3
EN

Stack Overflow用户

发布于 2021-03-11 19:50:35

替换方法将替换字符串中的给定子字符串。

代码所做的是替换字符串中字符的第一次出现。

相反,你应该做的是:

代码语言:javascript
运行
复制
def replace_at_index(string, index):
    new_string = string[:index]
    new_string += "-"
    new_string += string[index+1:]
    return new_string

(以琵琶的方式;)

票数 1
EN

Stack Overflow用户

发布于 2021-03-11 19:50:49

str.replace不是替换索引,而是值的第一次出现。因为"Housee"[5] == 'e',它将取代第一个'e'

代码语言:javascript
运行
复制
def replace_at_index(string, index):
    newstr = string[:index] + '-' + string[index+1:]
    return newstr
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66589489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档