簡體   English   中英

用特定字符替換字符串中的索引范圍 - Python

[英]Replacing index range in String with certain character - Python

我試圖用“#”替換整個字符串,除了最后 4 個字符。

下列:

def maskify(cc):
    c2 = cc.replace(cc[:-4], '#')
    return c2

print(maskify('TestName'))

結果是:

#Name

我希望它返回:

####Name

我在這里做錯了什么? 謝謝

對於更簡單的解決方案,您可以改為在字符串的最后4字符上使用rjust ,並用#填充到其原始長度:

s = 'TestName'
s[-4:].rjust(len(s), '#')

'####Name'

您的函數的問題在於,您必須重復要使用的元素來替換盡可能多的替換元素。 所以你應該這樣做:

def maskify(cc):
    c2 = cc.replace(cc[:-4], '#'*len(cc[:-4]))
    return c2

yatu 使用rjust()的解決方案看起來不錯,但str.replace()是一個錯誤的朋友。 它適用於a reasonably varied string ,但如果元素在 string 中重復,它可能會失敗(這是 yatu 的第二個解決方案):

def maskify(cc):
    c2 = cc.replace(cc[:-4], '#'*len(cc[:-4]))
    return c2

print(maskify('12121212'))

給,

########

我建議像這樣“構建”新字符串,

def maskify(cc):
    mask = '#' * (len(cc)-4)
    return mask+cc[-4:]

這給出了想要的結果,

####1212

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM