una texto separar saber que por palabra mayusculas mayuscula letras letra funcion eliminar contar caracteres caracter cadena python string python-3.x count uppercase

texto - separar palabra en letras python



Cuenta las letras mayúsculas en una cadena con Python (6)

Estoy tratando de averiguar cómo puedo contar las letras mayúsculas en una cadena.

Solo he podido contar letras minúsculas:

def n_lower_chars(string): return sum(map(str.islower, string))

Ejemplo de lo que estoy tratando de lograr:

Type word: HeLLo Capital Letters: 3

Cuando trato de voltear la función de arriba, produce errores:

def n_upper_chars(string): return sum(map(str.isupper, string))


El método (ligeramente) más rápido para esto en realidad parece ser la prueba de membresía en un frozenset

import string message=''FoObarFOOBARfoobarfooBArfoobAR'' s_upper=frozenset(string.uppercase) %timeit sum(1 for c in message if c.isupper()) >>> 100000 loops, best of 3: 5.75 us per loop %timeit sum(1 for c in message if c in s_upper) >>> 100000 loops, best of 3: 4.42 us per loop


Esto funciona

s = raw_input().strip() count = 1 for i in s: if i.isupper(): count = count + 1 print count


Puedes hacer esto con sum , una expresión generadora y str.isupper :

message = input("Type word: ") print("Capital Letters: ", sum(1 for c in message if c.isupper()))

Vea una demostración a continuación:

>>> message = input("Type word: ") Type word: aBcDeFg >>> print("Capital Letters: ", sum(1 for c in message if c.isupper())) Capital Letters: 3 >>>


Puedes usar re :

import re string = "Not mAnY Capital Letters" len(re.findall(r''[A-Z]'',string))

5


Usando len y filter :

import string value = "HeLLo Capital Letters" len(filter(lambda x: x in string.uppercase, value)) >>> 5


from string import ascii_uppercase count = len([letter for letter in instring if letter in ascii_uppercase])

Esta no es la forma más rápida, pero me gusta lo legible que es. Otra forma, sin importar desde una cadena y con una sintaxis similar, sería:

count = len([letter for letter in instring if letter.isupper()])