[英]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.