如何用python用'#'替换字符串中的每个连续字符?

示例 - 对于给定字符串 'Hello World' 返回的字符串是 'H#l#o W#r#d'。

我试过这个代码,但空格也包含在这个中。我希望在单词之间保持空格

def changer():
    ch=[]
    for i in 'Hello World':
        ch.append(i)
    for j in range(1,len(ch),2):
        ch[j]= '#'
    s=''
    for k in ch:
        s=s+k
    print(s)
changer()

Output - H#l#o#W#r#d


Output i want =  H#l#o W#r#d

回答

您可以str.split在空格上获取子字符串,然后为每个子字符串替换所有奇数字符,'#'同时保留偶数字符。然后str.join替换的子串重新组合在一起。

>>> ' '.join(''.join('#' if v%2 else j for v,j in enumerate(i)) for i in s.split())
'H#l#o W#r#d'


回答

您可以控制增量,默认情况下为 2,但在空格 1 的情况下跳过它并继续评估下一个单词

def changer():
    ch=[]
    increment = 2
    for i in 'Hello World':
        ch.append(i)
    for j in range(1,len(ch),increment):
        if not ch[j].isspace():
            ch[j]= '#'
            increment = 2
        else:
            increment = 1
    s=''
    for k in ch:
        s=s+k
    print(s)
changer()


以上是如何用python用'#'替换字符串中的每个连续字符?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>