string - 在大写python 中,检查字符串的大小?

  显示原文与译文双语对照的内容
128 0

我有一个文本,我想知道是否全部或者大于 50%的大小都是大写的。

带有触摸屏lorem的DOFLAMINGO

我尝试使用 正规表达式 ( 在这里找到一个解决方案):

rx = re.compile(r"^([A-Z ':]+$)", re.M)
upp = rx.findall(string)

但这会发现所有的大写,我不知道所有或者多于 50 %的( 这包括所有) 是大写的?

我只想编号( 所以没有数字,空格,新行等)

时间:原作者:0个回答

79 4

你可以使用 filterstr.isalpha 清除非字母字符和str.isupper 来计数大写字符和计算比率:

s = 'DOFLAMINGO WITH TOUCH SCREEN lorem ipsum'
alph = list(filter(str.isalpha, s)) # ['D',.. ., 'O', 'W',.. ., 'N', 'l', 'o',.. .]
sum(map(str.isupper, alph))/len(alph)
# 0.7142857142857143

还可以看到 summap的文档,你可能会发现自己经常使用。这里外,这使用 boolint of的一个子类,并且适合于某些可以能太隐含的和。

原作者:
...