Python用*替换字符串中的所有大写字符

时间:2013-12-14 03:50:46

标签: python string python-2.7 replace character

是否有一种简单,直接的方式来转换此字符串:

"aBCd3Fg"

分为:

"a**d3*g"

在python 2.7中?

5 个答案:

答案 0 :(得分:6)

不确定您需要多快,但如果您正在寻找最快的解决方案。 python字符串模块的translate函数略微更加迂回,但通常性能更高的方法:

import string

transtab = string.maketrans(string.uppercase, '*'*len(string.uppercase))
"aBCd3Fg".translate(transtab)

>>>'a**d3*g'

我总是很惊讶有多少人不知道这个伎俩。 python IMO中最好的保密秘密之一

答案 1 :(得分:5)

import re

print re.sub(r'[A-Z]', '*', "aBCd3Fg")

答案 2 :(得分:2)

string = ''.join(['*' if x.isupper() else x for x in string])

答案 3 :(得分:1)

一个简单的解决方案:

input = "aBCd3Fg"
output = "".join(['*' if 'A' <= char <= 'Z' else char for char in input ])
#Long version
input = "aBCd3Fg"
output = ''
for char in input:
    output = output + '*' if ord('A') <= ord(char) <= ord('Z') else output + char
print output

答案 4 :(得分:-3)

你也可以这样做:

for x in myString:
    if (x == 'A','B','C','D','E','F','G','H','I','J','K','L','M',
    'N','O','P','Q','R','S','T','U','V','W','X','Y','Z'"
        x = '*'

这是完成工作的一小段代码。