Programación

23 métodos de strings que todo desarrollador Python debe conocer

Descubre los 23 métodos de strings más utilizados en Python. ¡Mejora tus habilidades ahora y conviértete en un mejor desarrollador!

  13 min

Introducción

Antes de sumergirnos en las funciones de strings en Python, es esencial que estés bien familiarizado con la definición exacta de qué es una string.

En términos simples, una string es un tipo de dato usado para describir contenido textual en lugar de números en distintos lenguajes de programación. Está compuesta principalmente por una colección predefinida de caracteres, incluyendo espacios en blanco y dígitos numéricos, y generalmente se delimita con comillas simples o dobles para distinguirla durante la ejecución de un programa.

Los literales de string en Python no tienen un límite máximo de longitud y dependen únicamente de los recursos de memoria de tu computadora.

En Python, se pueden usar índices para acceder a caracteres individuales de una string. También se permite a los usuarios acceder a caracteres de una string usando referencias de posición tanto positivas como negativas, lo cual es único. Los índices positivos dan acceso a caracteres desde el inicio de la string, mientras que los índices negativos permiten acceder a caracteres desde el final.

El tipo de dato string de Python viene con un gran conjunto de métodos predefinidos. Estas funciones te permiten modificar y trabajar con literales de string en Python de forma sencilla.

Por ejemplo, si quieres convertir cada carácter de tu string a minúsculas, existe una mejor manera de hacerlo que iterar por cada carácter de la string.

Esto se puede lograr fácilmente en una sola línea usando el método lower() de Python, que hace exactamente eso. Así es como estos métodos resultan útiles en la vida real.

Este artículo se centrará en los principales métodos de string incorporados en Python, con aplicaciones sorprendentemente útiles para manipular strings en estructuras de datos y algoritmos.

1. len

Se usa para contar el número total de caracteres en una string.

Sintaxis:

len(<string>)

Ejemplo:

texto = "¿Cuántos caracteres hay aquí?"

print(len(texto))
# 30

2. capitalize

El método capitalize() devuelve una nueva string modificada, convirtiendo el primer carácter de la string original en mayúscula y los demás en minúsculas.

Sintaxis:

<string>.capitalize()

Ejemplo:

texto = "tExtO a Ser modIficAdo"

print(texto.capitalize())
# Texto a ser modificado

3. upper

Devuelve una nueva string con todos los caracteres en mayúsculas.

Sintaxis:

<string>.upper()

Ejemplo:

texto = "texto para poner en mayúsculas"

print(texto.upper())
# TEXTO PARA PONER EN MAYÚSCULAS

4. lower

Devuelve una nueva string con todos los caracteres en minúsculas.

Sintaxis:

<string>.lower()

Ejemplo:

texto = "TEXTO PARA PONER EN minúsculas"

print(texto.lower())
# texto para poner en minúsculas

5. count

El método count() se usa para contar cuántas veces aparece una string determinada en un texto.

Sintaxis:

string.count(texto_de_busqueda)

string.count(texto_de_busqueda, inicio)

string.count(texto_de_busqueda, inicio, fin)

Este método tiene tres argumentos. El primero es obligatorio, y los otros dos son opcionales. El primer argumento contiene el valor a buscar en el texto. El segundo argumento contiene la posición de inicio de la búsqueda, y el tercer argumento contiene la posición de fin de la búsqueda.

Ejemplo:

El siguiente script muestra los tres usos diferentes del método count(). El primero buscará la palabra ‘es’ en la variable strVal. El segundo busca la misma palabra a partir de la posición 20. El tercero busca la misma palabra dentro del rango de la posición 50 a 100.


strVal = 'Python es un lenguaje de programación poderoso. Es muy simple de usar. Es un excelente lenguaje para que los principiantes aprendan a programar.'

print("La palabra 'es' apareció %d veces" %(strVal.count("es")))
# La palabra 'es' apareció 1 veces

print("La palabra 'es' apareció %d veces después de la posición 20" %(strVal.count("es", 20)))
# La palabra 'es' apareció 0 veces después de la posición 20

print("La palabra 'es' apareció %d veces dentro del rango de 50 a 100" %(strVal.count("es", 50, 100)))
# La palabra 'es' apareció 0 veces dentro del rango de 50 a 100

6. find

Devuelve la posición/índice de la primera ocurrencia de una substring en una string dada. En caso contrario, devuelve -1.

Sintaxis:

find(texto_de_busqueda)

find(texto_de_busqueda, posicion_inicial)

find(texto_de_busqueda, posicion_inicial, posicion_final)

Este método puede recibir tres argumentos, donde el primero es obligatorio y los otros dos son opcionales. El primer argumento contiene el valor de string a buscar, el segundo define la posición de inicio de la búsqueda, y el tercero define la posición de fin de la búsqueda. Devuelve la posición del texto_de_busqueda si existe en la string principal; en caso contrario, devuelve -1.

Ejemplo:

Los usos del método find() con uno, dos y tres argumentos se muestran en el siguiente script. La primera salida será -1 porque el texto de búsqueda es ‘python’ y la variable str contiene la string ‘Python’. La segunda salida devolverá una posición válida porque la palabra ‘programa’ existe después de la posición 10. La tercera salida devolverá -1 porque la palabra ‘Python’ no existe dentro del rango de 0 a 5 de la string.

str = 'Aprende a programar en Python'

print(str.find('python'))
# -1

print(str.find('Python'))
# 24

print(str.find('programar', 8))
# 10

print(str.find('Python', 0, 5))
# -1

7. rfind

En Python, el método rfind() se usa para encontrar la última ocurrencia de una substring. Funciona de forma similar al método find(), pero comienza la búsqueda desde el final de la string hacia el inicio. Si la substring se encuentra, el método devuelve la posición de la última ocurrencia. En caso contrario, devuelve -1.

Sintaxis:

string.rfind(substring)

string.rfind(substring, inicio)

string.rfind(substring, inicio, fin)

Ejemplo:

texto = "Python es un lenguaje de programación, Python es genial."

# Encontrar la última ocurrencia de "Python"
posicion = texto.rfind("Python")
print("Posición de la última ocurrencia de 'Python':", posicion)
# Posición de la última ocurrencia de 'Python': 40

# Comenzar la búsqueda desde la posición 20
posicion = texto.rfind("Python", 20)
print("Posición de la última ocurrencia de 'Python' desde la posición 20:", posicion)
# Posición de la última ocurrencia de 'Python' desde la posición 20: 40

# Limitar la búsqueda hasta la posición 25
posicion = texto.rfind("Python", 0, 25)
print("Posición de la última ocurrencia de 'Python' hasta la posición 25:", posicion)
# Posición de la última ocurrencia de 'Python' hasta la posición 25: 0

8. startswith

Verifica si una string dada comienza con un prefijo específico o no, y devuelve verdadero o falso.

Sintaxis:

<string>.startswith(substring)

Ejemplo:

texto = "Postre"
texto.startswith("Post")
# True
texto.startswith("post")
# False

9. endswith

Verifica si una string dada termina con un sufijo específico o no, y devuelve verdadero o falso.

Sintaxis:

<string>.endswith(substring)

Ejemplo:

texto = "constitucionalmente"
texto.endswith("Mente")
# False
texto.endswith("mente")
# True

10. index

El método index() funciona como el método find(), pero hay una diferencia clave entre ambos. Los dos métodos devuelven la posición del texto de búsqueda si la string existe dentro de la string principal. Si el texto de búsqueda no existe en la string principal, el método find() devuelve -1, pero el método index() lanza un ValueError.

Sintaxis:

<string>.index(texto_de_busqueda [, inicio [, fin]])

Este método tiene tres argumentos. El primero es obligatorio y contiene el texto de búsqueda. Los otros dos son opcionales y contienen las posiciones de inicio y fin de la búsqueda.

Ejemplo:

El método index() se usa cuatro veces en el siguiente script. Se usa un bloque try-except para manejar el ValueError. El método index() se usa con un argumento en la primera salida, buscando la palabra ‘poderoso’ en la variable strVal. Luego, el método index() busca la palabra ‘programación’ a partir de la posición 10, que existe en strVal. Después, el método busca la palabra ‘es’ entre las posiciones 5 y 15. La última llamada a index() busca la palabra ‘suyo’ en 025, que no existe en strVal.

strVal = 'Python es un lenguaje de programación poderoso.'

try:
    print(strVal.index('poderoso'))
		# 39

    print(strVal.index('programación', 10))
		# 26

    print(strVal.index('es', 5, 15))
		# 7

    print(strVal.index('suyo', 0, 25))
		# No se encontró la string de búsqueda

except ValueError:
    print("No se encontró la string de búsqueda")

11. split

Este método se usa para dividir cualquier dato de string basándose en un separador o delimitador específico. Puede recibir dos argumentos, ambos opcionales.

Sintaxis:

<string>.split()

<string>.split(separador)

<string>.split(separador, maxsplit=maxsplit)

Si este método se usa sin ningún argumento, se usa el espacio como separador por defecto. Cualquier carácter o una lista de caracteres puede usarse como separador. El segundo argumento opcional se usa para definir el límite de veces que la string será dividida. Devuelve una lista de strings.

Ejemplo:

s1 = 'string methods in python programming language'.split()
# ['string', 'methods', 'in', 'python']

s2 = 'string methods in python programming language'.split(' ', maxsplit=1)
# ['string', 'methods in python']

12. rsplit

Al igual que el método split, rsplit se usa para dividir cualquier dato de string basándose en un separador o delimitador específico. También puede recibir dos argumentos, ambos opcionales.

Sintaxis:

<string>.rsplit()

<string>.rsplit(separador)

<string>.rsplit(separador, maxsplit=maxsplit)

Ejemplo:

s = 'string methods in python'.rsplit()
# ['string', 'methods', 'in', 'python']

s = 'string methods in python'.rsplit(' ', maxsplit=1)
# ['string methods in', 'python']

13. join

El método join() se usa para crear una nueva string combinando otras strings con una string, lista de strings o tupla de strings.

Sintaxis:

separador.join(iterable)

Solo tiene un argumento que puede ser una string, una lista o una tupla, y el separador contiene el valor de string que se usará para la concatenación.

Ejemplo:

El método strip() se usa para eliminar espacios en blanco de ambos lados de una string.

nombres = ["Alice", "Bob", "Charlie", "David"]

nombres_formateados = ", ".join(nombres)

print("Lista de nombres formateada:", nombres_formateados)
# Lista de nombres formateada: Alice, Bob, Charlie, David

13. strip

El método strip() se usa para eliminar espacios en blanco de ambos lados de una string. Este método no acepta ningún argumento.

Sintaxis:

<string>.strip()

<string>.rStrip()

Ejemplo:

texto = "    Texto con espacio en blanco al inicio y al final.   "

texto.strip()
# "Texto con espacio en blanco al inicio y al final."

14. lstrip

El método lstrip() elimina el espacio en blanco del lado izquierdo.

Sintaxis:

<string>.lstrip()

Ejemplo:

texto = "    Texto con espacio en blanco al inicio y al final.   "

texto.lstrip()
# "Texto con espacio en blanco al inicio y al final.   "

15. rstrip

El método rstrip() elimina el espacio en blanco del lado derecho de la string.

Sintaxis:

<string>.rstrip()

Ejemplo:

texto = "    Texto con espacio en blanco al inicio y al final.   "

texto.rstrip()
# "    Texto con espacio en blanco al inicio y al final."

16. removeprefix

El método removeprefix en Python se usa para eliminar un prefijo especificado de una string. Si la string comienza con el prefijo, el prefijo se elimina; de lo contrario, la string original se mantiene sin cambios.

Sintaxis:

<string>.removeprefix(substring)

Ejemplo:

texto = "Python es genial"
resultado = texto.removeprefix("Python es ")
print(resultado)  
# "genial"

17. removesuffix

El método removesuffix en Python se usa para eliminar un sufijo específico de una string. Si la string termina con el sufijo, ese sufijo se elimina; de lo contrario, la string original permanece sin cambios.

Sintaxis:

<string>.removesufix(substring)

Ejemplo:

texto = "El invierno está llegando."
resultado = texto.removesuffix(" está llegando.")
print(resultado)  
# "El invierno"

18. replace

El método replace() se usa para reemplazar una parte específica de una string por otra, si se encuentra una coincidencia. Puede recibir tres argumentos, dos obligatorios y uno opcional.

Sintaxis:

<string>.replace(string_de_busqueda, string_de_reemplazo [, limite])

El primer argumento es la string de búsqueda que deseas reemplazar, y el segundo es la string de reemplazo. El tercer argumento opcional define el límite de reemplazos de la string.

Ejemplo:

En el siguiente script, el primer replace se usa para reemplazar la palabra ‘PHP’ por la palabra ‘Java’ en el contenido de la variable str. Como la palabra de búsqueda existe en la variable str, la palabra ‘PHP’ será reemplazada por ‘Java’. El tercer argumento del método replace se usa en el siguiente replace, y reemplazará solo la primera coincidencia de la palabra de búsqueda.


texto = "Me gusta PHP, pero me gusta más Python"

reemplazo = texto.replace("PHP", "Java")

print("String original:", texto)
# String original: Me gusta PHP, pero me gusta más Python

print("String reemplazada:", reemplazo)
# String reemplazada: Me gusta Java, pero me gusta más Python

reemplazo_2 = texto.replace("gusta", "no me gusta", 1)

print("\nString original:", texto)
# String original: Me gusta PHP, pero me gusta más Python

print("String reemplazada:", reemplazo_2)
# String reemplazada: Me no me gusta PHP, pero me gusta más Python

19. format

El método format() es un método esencial en Python para generar salidas formateadas. Tiene muchos usos y puede aplicarse tanto a datos de tipo string como numéricos para producir una salida formateada. A continuación se muestra cómo puede usarse este método para el formateo basado en índice de datos de tipo string.

Sintaxis:

{}.format(valor)

La string y la posición del marcador se definen dentro de llaves ({}). Devuelve la string formateada según la string y los valores pasados en la posición del marcador.

Ejemplo:

Los cuatro tipos de formateo se muestran en el siguiente script. En el primer resultado se usa el valor de índice {0}. En el segundo resultado no se asigna ninguna posición. En el tercer resultado se asignan dos posiciones secuenciales. En el cuarto resultado se definen tres posiciones no ordenadas.

# Ejemplo 1: Sustitución directa con índice
print("Aprende a programar en {0}.".format("Python"))
# Aprende a programar en Python.

# Ejemplo 2: Sustitución sin especificar índices
print("\nTanto {} como {} son lenguajes de scripting".format("Bash", "Python"))
# Tanto Bash como Python son lenguajes de scripting

# Ejemplo 3: Sustitución con índices
print("\nID del estudiante: {0}\nNombre del estudiante: {1}\n".format("00001", "Juan Pérez"))
# ID del estudiante: 00001
# Nombre del estudiante: Juan Pérez

20. center

Devuelve una string centrada en una longitud especificada. El relleno se hace usando el carácter especificado (por defecto es un espacio).

Sintaxis:

<string>.center(width [, char])

Ejemplo:

s = '¡Python es increíble!'
s = s.center(30, '-')
# ----¡Python es increíble!----

21. ljust

Devuelve la string justificada a la izquierda dentro de una string de longitud especificada. El relleno se hace usando el carácter especificado (por defecto es un espacio).

Sintaxis:

<string>.ljust(width [, char])

Ejemplo:

s = '¡Python es increíble!'
s = s.ljust(30, '-')
# ¡Python es increíble!--------

22. rjust

Devuelve la string justificada a la derecha dentro de una string de longitud especificada. El relleno se hace usando el carácter especificado (por defecto es un espacio).

Sintaxis:

<string>.rjust(width [, char])

Ejemplo:

s = '¡Python es increíble!'
s = s.rjust(30, '-')
# --------¡Python es increíble!

23. partition

En Python, el método de string partition() busca una substring específica dentro de una string y divide la string original en una tupla que contiene tres elementos.

  • El primer elemento contiene la parte de la string antes de la substring especificada.
  • El segundo elemento contiene la substring especificada.
  • El tercer elemento contiene la parte restante después de la substring.

Sintaxis:

<string>.partition(substring)

Ejemplo:

frase = "El gato persigue al ratón en el jardín."
substring = "ratón"
resultado = frase.partition(substring)
print(resultado)
# ["El gato persigue al ", "ratón", " en el jardín."]

Conclusión

En resumen, dominar los métodos de strings en Python es una habilidad esencial para cualquier programador, ya que permite manipular texto de forma efectiva, desempeñando un papel crítico en áreas que van desde el análisis de texto hasta el desarrollo web. Conocer estas herramientas no solo mejora la eficiencia y legibilidad del código, sino que también abre la puerta a la creatividad, haciendo posible crear soluciones innovadoras y resolver desafíos complejos. Invertir tiempo en aprender y perfeccionar estos métodos es, por lo tanto, clave para convertirse en un programador más competente y versátil.

Resumen

MétodoUso
lenCuenta el número total de caracteres en una string.
capitalizeConvierte el primer carácter en mayúscula y los demás en minúsculas.
upperDevuelve una nueva string con todos los caracteres en mayúscula.
lowerDevuelve una nueva string con todos los caracteres en minúscula.
countCuenta cuántas veces aparece una string específica en la string.
findDevuelve la posición de la primera ocurrencia de una substring.
rfindDevuelve la posición de la última ocurrencia de una substring.
startswithVerifica si la string comienza con un prefijo específico.
endswithVerifica si la string termina con un sufijo específico.
indexFunciona como el método find(), pero lanza un ValueError si no lo encuentra.
splitDivide la string basándose en un separador o delimitador específico.
rsplitDivide la string basándose en un separador o delimitador específico, comenzando desde el final.
joinCrea una nueva string combinando otras strings con un separador.
stripElimina espacios en blanco de ambos lados de la string.
lstripElimina espacios en blanco del lado izquierdo de la string.
rstripElimina espacios en blanco del lado derecho de la string.
removeprefixElimina un prefijo específico de una string.
removesuffixElimina un sufijo específico de una string.
replaceReemplaza una parte específica de una string por otra, si se encuentra una coincidencia.
formatGenera salida formateada basada en índice para datos de tipo string.
centerDevuelve una string centrada en una longitud especificada.
ljustDevuelve la string justificada a la izquierda en una longitud especificada.
rjustDevuelve la string justificada a la derecha en una longitud especificada.
partitionDivide la string en una tupla con tres elementos basándose en una substring específica.

Referencias

Compartir:
Volver al Blog