Replace every nth letter in a string

后端 未结 7 900
渐次进展
渐次进展 2021-01-19 03:40

I\'m writing a function to replace every n-th letter from a string

def replaceN(str, n):
   for i in range(len(str)):
     n=str[i]
     newStr=str.replace(         


        
7条回答
  •  猫巷女王i
    2021-01-19 04:02

    One-liner:

    newstring = ''.join("*" if i % n == 0 else char for i, char in enumerate(string, 1))
    

    Expanded:

    def replace_n(string, n, first=0):
        letters = (
            # i % n == 0 means this letter should be replaced
            "*" if i % n == 0 else char
    
            # iterate index/value pairs
            for i, char in enumerate(string, -first)
        )
        return ''.join(letters)
    
    >>> replace_n("hello world", 4)
    '*ell* wo*ld'
    >>> replace_n("hello world", 4, first=-1)
    'hel*o w*orl*'
    

提交回复
热议问题