Considere las posibilidades de (1) caracteres que no son letras y (2) letras que no tienen ningún caso.
John Machin
Respuestas:
173
Hay varios "métodos is" en cadenas. islower()y isupper()debe satisfacer sus necesidades:
>>> 'hello'.islower()
True>>> [m for m in dir(str) if m.startswith('is')]
['isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper']
A continuación, se muestra un ejemplo de cómo utilizar esos métodos para clasificar una lista de cadenas:
>>> words = ['The', 'quick', 'BROWN', 'Fox', 'jumped', 'OVER', 'the', 'Lazy', 'DOG']
>>> [word for word in words if word.islower()]
['quick', 'jumped', 'the']
>>> [word for word in words if word.isupper()]
['BROWN', 'OVER', 'DOG']
>>> [word for word in words ifnot word.islower() andnot word.isupper()]
['The', 'Fox', 'Lazy']
Hola. gracias por la respuesta corta. ¿Pero cómo clasifico las palabras en mayúsculas? Por ejemplo: 'Palabra mixta'. Parece que la tercera ejemplo, se adapta a todas las combinaciones posibles de palabras mezcladas, ejemplo: "mixto palabra" ..
Swadhikar
10
'hello'.istitle ()
Stephen
1
Quiero dar un saludo por usar el remódulo para esto. Especialmente en el caso de sensibilidad a mayúsculas y minúsculas.
Usamos la opción re.IGNORECASE mientras compilamos la expresión regular para su uso en entornos de producción con grandes cantidades de datos.
>>> import re
>>> m = ['isalnum','isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'ISALNUM', 'ISALPHA', 'ISDIGIT', 'ISLOWER', 'ISSPACE', 'ISTITLE', 'ISUPPER']
>>>
>>>
>>> pattern = re.compile('is')
>>>
>>> [word for word in m if pattern.match(word)]
['isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper']
Sin embargo, intente usar siempre el inoperador para la comparación de cadenas como se detalla en esta publicación
Respuestas:
Hay varios "métodos is" en cadenas.
islower()
yisupper()
debe satisfacer sus necesidades:>>> 'hello'.islower() True >>> [m for m in dir(str) if m.startswith('is')] ['isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper']
A continuación, se muestra un ejemplo de cómo utilizar esos métodos para clasificar una lista de cadenas:
>>> words = ['The', 'quick', 'BROWN', 'Fox', 'jumped', 'OVER', 'the', 'Lazy', 'DOG'] >>> [word for word in words if word.islower()] ['quick', 'jumped', 'the'] >>> [word for word in words if word.isupper()] ['BROWN', 'OVER', 'DOG'] >>> [word for word in words if not word.islower() and not word.isupper()] ['The', 'Fox', 'Lazy']
fuente
Quiero dar un saludo por usar el
re
módulo para esto. Especialmente en el caso de sensibilidad a mayúsculas y minúsculas.Usamos la opción re.IGNORECASE mientras compilamos la expresión regular para su uso en entornos de producción con grandes cantidades de datos.
>>> import re >>> m = ['isalnum','isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'ISALNUM', 'ISALPHA', 'ISDIGIT', 'ISLOWER', 'ISSPACE', 'ISTITLE', 'ISUPPER'] >>> >>> >>> pattern = re.compile('is') >>> >>> [word for word in m if pattern.match(word)] ['isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper']
Sin embargo, intente usar siempre el
in
operador para la comparación de cadenas como se detalla en esta publicaciónoperación-más-rápida-re-match-or-str
También se detalla en uno de los mejores libros para comenzar a aprender Python
pitón idiomático
fuente