我需要返回给定的难题,其中每个字母字符都由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