En esta página
Cadenas de Python: convertir, limpiar, buscar y formatear
Las cadenas son el tipo de datos que más tocas en Python: la entrada del usuario, el contenido de los archivos, las páginas web y las filas de un CSV llegan todos como texto. Es fácil subestimarlas, porque una cadena de Python es inmutable: ningún método la cambia en su sitio; cada operación devuelve una cadena nueva. Esta página organiza las 115 guías de cadenas de DelftStack según el trabajo que estés haciendo, a lo largo de cuatro líneas de tarea: convertir texto a otros tipos y de vuelta, limpiar los caracteres que no pertenecen, buscar y comprobar qué contiene una cadena, y formatear o reemplazar texto para la salida.
La ruta de aprendizaje de las cadenas
Empieza con cinco minutos de conceptos básicos: cómo se construyen las cadenas, cómo se indexan y se cortan en rebanadas, y por qué la inmutabilidad significa que siempre debes quedarte con el valor devuelto. Después aprende a buscar y limpiar: find(), el operador in, strip() y replace() cubren la mayor parte del trabajo diario con texto. Continúa con la conversión, donde las cadenas intercambian su lugar con listas, números, diccionarios y bytes. Termina con el formato y el reemplazo, donde las f-strings son la opción por defecto y los estilos antiguos aparecen solo donde aún merecen su lugar. Cada paso siguiente es un grupo de esta página, en el orden en que hay que aprenderlos.
Conceptos básicos en cinco minutos: crear, unir y repetir
Una cadena es una secuencia de caracteres entre comillas simples o dobles; las comillas triples abarcan varias líneas, y la indexación junto con el corte en rebanadas permite leer cualquier parte. Dos hechos hacen la mayor parte del trabajo: len() mide una cadena, y construir una más larga siempre produce un valor nuevo.
- Repetir cadena N veces en Python — Multiplica con
*para un número fijo de copias, luego repite y corta para alcanzar una longitud objetivo exacta, validando las fuentes vacías y las longitudes negativas. - Copiar cadena en Python — Seis rutas para duplicar — concatenación con cadena vacía, corte completo,
str(),%,format()y f-strings — tras explicar por qué la inmutabilidad hace que ambas variables compartan un solo valor. - Crear una cadena de varias líneas en Python — Comillas triples para texto realmente multilínea, barra invertida y concatenación entre paréntesis para una sola línea lógica, y
textwrap.fill()para una salida de ancho fijo. - Agregar una cadena a otra en Python —
+frente astr.join();join()gana cuando hay muchas piezas porque cada+construye una cadena intermedia nueva.
Convertir: cadenas a listas, números y de vuelta
La conversión es donde el trabajo con cadenas se gana su valor: los datos llegan como texto y se usan como otra cosa. Las listas son la puerta más concurrida, los números la siguiente; los contenedores se aplanan con str() o join(), y los bytes solo cruzan mediante codificaciones explícitas. Un vecino vive en otra parte: convertir un datetime en cadena pertenece a las guías de Datetime — consulta la sección Datetime del pilar de Python.
- Cómo convertir una cadena en una lista en Python — La guía insignia:
list()para caracteres,split()para palabras y campos,ast.literal_eval()para texto literal — nuncaeval()con una entrada en la que no confíes. - Convertir tupla en cadena en Python —
str()conserva la estructura de la tupla,join()da un resultado limpio y separado, y un generador constr()por elemento maneja los tipos mezclados. - Convertir diccionario a cadena en Python — Cuatro rutas: un bucle escrito a mano,
str(),json.dumps()para el intercambio ypprint.pformat()para un anidamiento legible. - Equivalente de tostring() en Python — Python no tiene
toString(): usastr()para un valor,join()para muchos, f-strings para mensajes y__str__()para tus propias clases. - Convertir lista de cadenas a enteros en Python — La misma conversión de cuatro maneras: comprensión de lista,
map(int, ...), un bucle explícito y NumPy para conjuntos de datos grandes. - Convertir Bytearray en String en Python — Muestra por qué
bytes()deja detrás una representaciónb'...'y por québytearray.decode()devuelve el texto real. - Convertir una cadena en binario en Python — Separa el binario por punto de código mediante
ord()del binario de bytes codificados mediantebytearray()con relleno08b. - Convertir cadena en booleano en Python — Empieza con la trampa —
bool("False")esTrue— y luego construye un analizador de tokens explícito que lanza un error ante grafías desconocidas.
Limpiar y eliminar: quita lo que no pertenece
Limpiar es el terreno local de este clúster: las páginas raspadas, las exportaciones y la entrada del usuario llegan con caracteres que nunca fueron invitados. Elige según la forma de la suciedad: replace() para una subcadena conocida, translate() con una tabla para un conjunto entero de caracteres de una vez, y expresiones regulares cuando la suciedad es un patrón, no un literal.
- Formas de eliminar xa0 de una cadena en Python — Dos ataques contra el espacio invisible de no separación: la descomposición con
unicodedata.normalize("NFKD", ...)y unreplace("\xa0", " ")directo. - Eliminar comas de cadena en Python —
replace(",", "")para cada coma, el argumentocountsolo para la primera yre.sub()para el trabajo con patrones. - Cómo quitar la puntuación de una cadena en Python — El juego completo de herramientas: un filtro contra
string.punctuation, la sustitución con la expresión regular[^\w\s]y una tabla rápida destr.translate()creada conmaketrans(). - Eliminar comillas de cadena en Python —
replace()borra las comillas en todas partes;strip('"')recorta solo el par que rodea y deja intactas las comillas interiores. - Eliminar caracteres especiales de la cadena en Python — Define primero qué es «especial», y después aplica un filtro
isalnum(), un conjunto contranslate()o una expresión regular solo ASCII. - Eliminar \n de la cadena en Python —
replace()para los saltos de línea,split()másjoin()para reunir las líneas con espacios simples, y expresiones regulares para el espacio en blanco mezclado. - Cómo quitar el último carácter de la cadena en Python — El corte lo resuelve:
s[:-1]elimina el último carácter y la indexación negativa se generaliza a los tres últimos.
Buscar, comprobar y contar
Buscar es la mayor demanda insatisfecha de este clúster: los lectores saben el carácter que quieren y necesitan su posición, su cantidad o una respuesta de sí o no. Mantén clara la división del trabajo: in responde si está, find() responde dónde está el primero, index() responde dónde y se queja en voz alta cuando no hay coincidencia, y count() responde cuántos hay.
- Cómo encontrar un carácter en una cadena en Python —
find()para la primera coincidencia,rfind()para la última,index()cuando la ausencia debe lanzar un error y un bucle conenumerate()para cada índice. - Contar apariciones de un carácter en una cadena en Python —
str.count()para un carácter, con su regla de subcadenas que no se solapan;collections.Countercuando hay que contar cada carácter. - Compruebe si una cadena contiene Word en Python —
inpara la prueba sencilla, observando que"is" in "This"es verdadero; una expresión regular con límites de palabra\bcuando importa la palabra completa. - Verifique que la variable sea cadena o no en Python —
isinstance(value, str)como opción por defecto, la comparación contype()más estricta que pierde las subclases, y variantes con try-except. - Cómo usar if con cadenas en Python — Condiciones a partir de
==, la pertenencia coniny la comparación con el caso normalizado;iscomprueba la identidad, no el texto. - Python Buscar todas las apariciones en una cadena —
count()con límites para un total rápido y una comprensión constartswith()que devuelve cada índice.
Mayúsculas y minúsculas, comparación y relleno
El caso es donde las comparaciones fallan en silencio: Python compara por punto de código Unicode, así que el caso y las letras especiales cuentan todos. Normaliza antes de comparar — lower() o upper() para el texto ordinario, casefold() cuando los pares Unicode deben coincidir — y rellena con ljust(), rjust(), center() o zfill() para la presentación.
- Comparación de cadenas sin distinción de mayúsculas y minúsculas en Python — Normaliza ambos lados con
lower()oupper(), y después presenta el argumento Unicode a favor decasefold(), que hace equivalentesstraßeySTRASSE. - Rellenar una cadena con espacios en Python — El banco completo:
ljust(),rjust(),center()con caracteres de relleno, más los equivalentes con%,format()y f-strings para una salida alineada. - Comparar cadenas en Python — La referencia de operadores:
==y!=para la igualdad,<y>para el orden lexicográfico decidido por el primer punto de código que difiere. - Comparar dos cadenas carácter por carácter en Python — Empareja caracteres con
zip()y cuenta las posiciones coincidentes, tratando de forma explícita las entradasNoney las longitudes desiguales.
Formatear y reemplazar
Para el código nuevo, formatear significa f-strings: los valores se sientan dentro de la plantilla donde puedes leerlos, y las especificaciones de formato controlan el ancho y la precisión. str.format() sigue siendo lo correcto cuando la plantilla vive por separado o se reutiliza, y el formato con % sobrevive en el código antiguo que seguirás encontrando. El reemplazo obedece a la inmutabilidad como todo lo demás: nunca editas una cadena, construyes la corregida.
- Reemplazar carácter en una cadena en Python — Convertir a lista y asignar por índice, cortar alrededor de una posición conocida o
replace()para cada coincidencia; cada opción devuelve una cadena nueva. - Diferencia entre% s y% d en el formato de cadena de Python —
%sacepta cualquier valor mediante la conversión constr();%dexige un entero y trunca los decimales: la distinción heredada detrás de la mayoría de las sorpresas. - Python Sprintf: la cadena formateada en Python — Python no tiene
sprintf(); el trabajo recae en el operador%, enformat(), en las f-strings o en un envoltorio hecho a mano. - Reemplazar carácter en cadena en el índice en Python — El ejemplo
Meatloafde las dos maneras — cortar y reconstruir, o mutar una copia en lista — extendido a varios índices.
Mapa de métodos de cadena
Python incluye 47 métodos de cadena integrados, y este mapa encuentra el adecuado con rapidez. Léelo por verbos: la familia is* comprueba, los métodos de caso transforman, split y join desarman y reconstruyen, y los métodos de búsqueda localizan. Donde una guía profundiza en un método, la tercera columna enlaza a ella; una celda vacía significa que la descripción de una línea basta.
| Método | Qué hace | En profundidad |
|---|---|---|
capitalize() |
Pone en mayúscula el primer carácter y el resto en minúscula | En profundidad |
casefold() |
Minúsculas agresivas, pensadas para la comparación sin distinción de caso | En profundidad |
center() |
Centra la cadena en un campo del ancho dado | En profundidad |
count() |
Cuenta las apariciones no solapadas de una subcadena | En profundidad |
encode() |
Codifica la cadena a bytes con la codificación elegida | En profundidad |
endswith() |
Comprueba si la cadena termina con un sufijo | |
expandtabs() |
Reemplaza los caracteres de tabulación por espacios | |
find() |
Índice más bajo de una subcadena, o -1 cuando está ausente | En profundidad |
format() |
Formatea valores en marcadores {} | En profundidad |
format_map() |
Como format(), con los valores tomados de un mapeo | |
index() |
Índice más bajo de una subcadena; lanza ValueError cuando está ausente | En profundidad |
isalnum() |
Verdadero cuando cada carácter es una letra o un dígito | En profundidad |
isalpha() |
Verdadero cuando cada carácter es alfabético | |
isascii() |
Verdadero cuando cada carácter es ASCII | |
isdecimal() |
Verdadero cuando cada carácter es un dígito decimal | |
isdigit() |
Verdadero cuando cada carácter es un dígito | En profundidad |
isidentifier() |
Verdadero cuando la cadena es un identificador válido de Python | |
islower() |
Verdadero cuando todas las letras están en minúscula | |
isnumeric() |
Verdadero cuando cada carácter es numérico | |
isprintable() |
Verdadero cuando cada carácter es imprimible | |
isspace() |
Verdadero cuando cada carácter es un espacio en blanco | |
istitle() |
Verdadero cuando la cadena está en formato de título | |
isupper() |
Verdadero cuando todas las letras están en mayúscula | |
join() |
Une un iterable de cadenas usando esta cadena como separador | En profundidad |
ljust() |
Justifica a la izquierda en un campo del ancho dado | En profundidad |
lower() |
Devuelve una copia en minúsculas | En profundidad |
lstrip() |
Elimina los caracteres iniciales (espacio en blanco por defecto) | |
maketrans() |
Construye una tabla de traducción para translate() | En profundidad |
partition() |
Divide en el primer separador en una tupla de tres partes | |
removeprefix() |
Quita un prefijo cuando está presente | |
removesuffix() |
Quita un sufijo cuando está presente | |
replace() |
Reemplaza las apariciones de una subcadena por otra | En profundidad |
rfind() |
Índice más alto de una subcadena, o -1 cuando está ausente | En profundidad |
rindex() |
Índice más alto de una subcadena; lanza ValueError cuando está ausente | |
rjust() |
Justifica a la derecha en un campo del ancho dado | En profundidad |
rpartition() |
Divide en el último separador en una tupla de tres partes | |
rsplit() |
Divide por un separador, contando desde la derecha | |
rstrip() |
Elimina los caracteres finales (espacio en blanco por defecto) | |
split() |
Divide por un separador en una lista | En profundidad |
splitlines() |
Divide por los límites de línea en una lista | |
startswith() |
Comprueba si la cadena empieza con un prefijo | En profundidad |
strip() |
Elimina los caracteres iniciales y finales | En profundidad |
swapcase() |
Devuelve una copia con el caso de cada carácter invertido | |
title() |
Devuelve una copia en formato de título, con cada palabra en mayúscula | |
translate() |
Mapea los caracteres a través de una tabla de traducción | En profundidad |
upper() |
Devuelve una copia en mayúsculas | En profundidad |
zfill() |
Rellena con ceros a la izquierda hasta el ancho dado | En profundidad |
Preguntas frecuentes
¿Cómo convierto una cadena en una lista en Python?
Decide qué debe ser cada elemento y elige después la herramienta que coincide. list(text) da un elemento por carácter; text.split() da palabras, y text.split(",") da campos separados por un delimitador, conservando los campos vacíos. Para un texto que ya parece una lista de Python, analízalo con ast.literal_eval() y comprueba que el resultado es realmente una lista. Nunca uses eval() con una entrada que no controles. La explicación completa está en Cómo convertir una cadena en una lista en Python.
¿Cómo compruebo si una cadena contiene una subcadena o una palabra?
Para una prueba sencilla de subcadena, usa el operador in: "word" in text devuelve un booleano y distingue mayúsculas y minúsculas. Cuando también necesitas la posición, find() devuelve el primer índice o -1, mientras que index() lanza ValueError en su lugar. Ten en cuenta que in también coincide dentro de palabras más grandes — "is" in "This" es verdadero — así que para una palabra completa, tokeniza o usa una expresión regular con límites \b, como se muestra en Compruebe si una cadena contiene Word en Python.
¿Cómo quito la puntuación o los caracteres especiales de una cadena?
Define primero qué debe desaparecer: solo la puntuación, o todo lo que no sea una letra o un dígito. Para la puntuación, filtra contra string.punctuation, sustituye con la expresión regular [^\w\s], o borra un conjunto entero de una vez con una tabla de str.translate() creada por maketrans(), la opción más rápida. Para una limpieza más amplia, un filtro isalnum() conserva las letras y los dígitos Unicode. Cómo quitar la puntuación de una cadena en Python repasa cada variante.
¿Por qué Python dice «not all arguments converted during string formatting»?
Este TypeError procede del formato con %: la plantilla contiene menos marcadores que la tupla de valores que pasaste, así que Python llega al final de la plantilla con argumentos sobrantes; por ejemplo, "Value: " % (1, 2). Da a cada valor exactamente un marcador, envuelve un único valor en una tupla de un elemento y escapa un signo de porcentaje literal como %%`. La guía dedicada a este error disecciona el mensaje caso por caso.
¿Existe un toString() en Python?
No. Python no tiene un método toString(); buscarlo es un hábito traído de Java. El equivalente es el integrado str(value), que devuelve una cadena legible para números, colecciones y la mayoría de los objetos. Usa join() para combinar muchas cadenas, f-strings para construir mensajes, y define __str__() en tus propias clases para controlar cómo se imprimen. Ten en cuenta que str() produce texto de visualización, no JSON ni CSV. Consulta Equivalente de tostring() en Python.
¿Cómo reemplazo un carácter en un índice concreto?
No puedes asignar dentro de una cadena: text[2] = "m" lanza TypeError, porque las cadenas son inmutables. Construye el reemplazo en su lugar: corta alrededor de la posición, text[:2] + "m" + text[3:], o convierte a lista, asigna en el índice y vuelve a unir con "".join(...). Ambos devuelven una cadena nueva y dejan intacta la original; valida el índice contra len(text) cuando proceda de la entrada del usuario. Reemplazar carácter en cadena en el índice en Python muestra ambos métodos.
Todas las guías de cadenas de Python
Conceptos básicos
- Copiar cadena en Python
- Repetir cadena N veces en Python
- Crear una cadena de varias líneas en Python
- Bucle sobre una cadena en Python
- Agregar una cadena a otra en Python
- Concatenar valores de cadena e int en Python
- Agregar carácter a la cadena en Python
- Equivalente de String Builder en Python
- Insertar una cadena en una cadena en Python
- Arreglar el error string indices must be integers en Python
Convertir
- Cómo convertir una cadena en una lista en Python
- Convertir tupla en cadena en Python
- Convertir lista de cadenas a enteros en Python
- Convertir Bytearray en String en Python
- Convertir diccionario a cadena en Python
- Equivalente de tostring() en Python
- Cómo convertir una cadena en Float o Int en Python
- Cómo convertir float a string en Python
- Convertir cadena a Unicode en Python
- Convertir una cadena en binario en Python
- Convertir cadena en booleano en Python
- Cómo convertir un entero en una cadena de caracteres en Python
- Dar formato a un número flotante en cadena en Python
- Convertir lista a cadena separada por comas en Python
- Cómo convertir una lista en cadena en Python
- Concatenar lista de cadenas en Python
- Dividir cadena a lista de caracteres en Python
- How to Parse String to List in Python
- Cómo dividir cadenas basadas en múltiples delimitadores en Python
- Dividir una cadena por espacios en blanco en Python
- Dividir cadena por la mitad en Python
- Convertir cadena a valor ASCII en Python
- Convertir caracteres Unicode en cadenas ASCII en Python
- Convertir cadena en doble en Python
- Convertir cadena en decimal en Python
- Cómo convertir los bytes en cadenas en Python 2 y Python 3
- Cómo convertir una cadena en bytes en Python
- How to Convert Datetime to String in Python
- Cómo convertir una cadena a datetime en Python
- Convertir una cadena en nombre de variable en Python
- How to Stringify JSON in Python
- Convierta una cadena en un valor flotante en Python
- Convertir cadena en entero en Python
Limpiar y eliminar
- Formas de eliminar xa0 de una cadena en Python
- Eliminar comas de cadena en Python
- Cómo quitar la puntuación de una cadena en Python
- Eliminar comillas de cadena en Python
- Eliminar caracteres especiales de la cadena en Python
- Eliminar \n de la cadena en Python
- Cómo quitar el último carácter de la cadena en Python
- Eliminar ciertos caracteres de una cadena en Python
- Eliminar números de cadena en Python
- Eliminar nueva línea de cadena en Python
- Eliminar el primer carácter de la cadena en Python
- Eliminar paréntesis de la cadena en Python
- Cómo quitar el sustrato de la cadena en Python
- Cómo eliminar los espacios en blanco de una cadena en Python
Buscar, comprobar y contar
- Compruebe si una cadena contiene Word en Python
- Verifique que la variable sea cadena o no en Python
- Cómo comprobar que una cadena contiene un número en Python
- Comprobar si una cadena es un número entero en Python
- Cómo encontrar un carácter en una cadena en Python
- Contar apariciones de un carácter en una cadena en Python
- Cómo usar if con cadenas en Python
- Python Buscar todas las apariciones en una cadena
- Compruebe si una cadena es un número en Python
- Cómo comprobar si una cadena contiene un sustrato en Python
- Comprobar si existe una palabra en una cadena en Python
- Cómo encontrar todos los índices de un carácter en una cadena de Python
- Extraer subcadena de una cadena en Python
- Cómo extraer números de una cadena en Python
- Contar palabras en cadena en Python
- Contar vocales en una cadena usando Python
- Subcadena común más larga en Python
- Encontrar una cadena en una lista en Python
- Hacer coincidir cadena difusa en Python
- Comprobación de Python si la lista contiene una cadena
- Python encuentra la cadena en el archivo
- Cómo verificar si una cadena está vacía de una manera pythonista
Mayúsculas y minúsculas, comparación y relleno
- Comparación de cadenas sin distinción de mayúsculas y minúsculas en Python
- Rellenar una cadena con espacios en Python
- Comparar cadenas en Python
- Comparar dos cadenas carácter por carácter en Python
- Pad String con ceros en Python
- Capitalización de cadenas en Python
- Cadena justificada a la derecha en Python
- Python ordenar cadenas alfabéticamente
Formatear y reemplazar
- Python Sprintf: la cadena formateada en Python
- Reemplazar carácter en una cadena en Python
- Diferencia entre% s y% d en el formato de cadena de Python
- Reemplazar carácter en cadena en el índice en Python
- Interpolación de cadenas en Python
- Resuelva el TypeError: no todos los argumentos se convirtieron durante el formato de cadena en Python
- Arreglar TypeError: Not Enough Arguments for Format String en Python
- Reparar TypeError: cadena de formato no vacía pasada a Object.format en Python
- Reemplazar cadena en archivo usando Python
- Imprimir cadena y variable en Python
Más artículos sobre cadenas
- Cifrar una cadena de Python
- Llamar una función desde el nombre de la cadena en Python
- B delante de la cadena en Python
- Cadena sin procesar en Python
- Cadena sin formato y cadena Unicode en Python
- Invertir una cadena en Python
- Permutaciones de una cadena en Python
- Leer archivo en una cadena en Python
- Escribir cadena en un archivo en Python
- Imprimir cadena a archivo de texto usando Python
- Enviar cadena usando Python Socket
- Citar barra invertida en cadena en Python
- EOL al escanear String Literal en Python
- TypeError: str devolvió una salida de impresión pero no de cadena
- Accediendo a Docstrings en Python
- Patrones Docstring más comunes en Python
- Cómo realizar el XOR a nivel de bits de dos cadenas en Python
- Generar cadenas aleatorias en Python
Eso es el clúster de cadenas de principio a fin. Para el mapa más amplio — listas, diccionarios, archivos, fechas y errores — vuelve al pilar de Python, donde los grupos de Dictionary y List se sientan junto al grupo de Strings que esta página desarrolla.