首页 > 解决方案 > s.replace 字符串方法,循环遍历一个字符串

问题描述

我正在尝试编写一种方法,将第一个字母之后的每个字母替换为“*”而不是字母。示例:“babble”产生“ba**le”“that”产生“tha*”

我的代码在循环时似乎与替换函数有问题,我不太明白为什么。

def fix_start(s):
    if len(s) < 2:
        s = "" 
    else:
        for i in s:
            if i == s[0]:
                if s[0]:
                    continue
                s.replace(s[i], "*")
                i += i
    print(s)

标签: pythonstringif-statementreplaceiteration

解决方案


str.replace方法返回原始字符串的副本,其中给定子字符串的所有出现都替换为给定的新字符串,因此您可以简单地从第二个字符切分输入字符串并将第一个字符的所有出现替换为'*',并在原始字符串的第一个字符:

def fix_start(s):
    return s[0] + s[1:].replace(s[0], '*')

这样fix_start('babble')返回:'ba**le'


推荐阅读