我需要返回給定的難題,其中每個字母字符都由HIDDEN字符替換。只替換字符串中的字母字符
HIDDEN = '^'
def blah(r):
r = HIDDEN * len(r)
return r
該函數用於替換我需要的任何字符串,但問題明確要求替換每個字母字符。
所以我不能有4
或'
或?
被替換爲HIDDEN,因爲他們不是字母字符。
我應該怎麼辦?
我需要返回給定的難題,其中每個字母字符都由HIDDEN字符替換。只替換字符串中的字母字符
HIDDEN = '^'
def blah(r):
r = HIDDEN * len(r)
return r
該函數用於替換我需要的任何字符串,但問題明確要求替換每個字母字符。
所以我不能有4
或'
或?
被替換爲HIDDEN,因爲他們不是字母字符。
我應該怎麼辦?
一種方法:使用翻譯方法:
import string
table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))
def blah(r):
return r.translate(table)
另一種方法:使用re.sub
:
import re
def blah(r):
return re.sub(r'[a-zA-Z]', r'^', r)
退房maketrans,您可以創建一個翻譯表從string.letters
到^
,然後用它。
返回給定拼圖與每個字母字符替換爲隱藏字符。
HIDDEN = '^'
def blah(r):
new_r = ""
for ch in r:
if ch in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ':
new_r += HIDDEN
else:
new_r += ch
return new_r
@sberry:作業代碼已[棄用](http://meta.stackexchange.com/questions/147100/the-homework-tag-is-now-officially-deprecated)。 – DSM
那麼,你會如何確定哪些字符是字母字符?當然你知道一些方法來做到這一點?循環所有字母?正則表達式?過濾?做一些事情來展示一個嘗試,也許我們可以幫助你「提煉」你的代碼。 – sberry
@DSM,並被替換?我希望... – sberry