是否有一种简单,直接的方式来转换此字符串:
"aBCd3Fg"
分为:
"a**d3*g"
在python 2.7中?
答案 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 = '*'
这是完成工作的一小段代码。