-2

我需要返回给定的谜题,每个字母字符都被隐藏字符替换。

HIDDEN = '^' 

def blah(r):
    r = HIDDEN * len(r)
    return r

此函数可用于替换我需要的任何字符串,但问题特别要求替换每个 ALPHABETIC 字符。

所以我不能有4或被HIDDEN 取代'?因为它们不是字母字符。

我该怎么办?

4

4 回答 4

8

一种方法:使用translate方法:

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)
于 2012-10-19T02:29:05.470 回答
2

查看maketrans,您可以创建一个转换表 from string.lettersto^然后使用它。

于 2012-10-19T02:29:53.317 回答
1

我总是觉得maketrans有点难以理解,所以我通常会使用更原始的方式来做这些事情(这对我来说更有意义):

def make_hidden(instr):
    return ''.join(c if c.isalpha() else '^' for c in instr)
于 2012-10-19T02:49:29.757 回答
1

返回给定的谜题,每个字母字符都替换为 HIDDEN 字符。

HIDDEN = '^' 

def blah(r):

    new_r = ""

    for ch in r:

        if ch in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ':

           new_r += HIDDEN 

        else:

           new_r += ch

     return new_r
于 2012-12-09T01:32:38.220 回答