[Go to site: main page, start]

Ir al contenido principal

Conversión de tipos de datos en Python: guía con ejemplos

En este tutorial de Python verás la conversión implícita y explícita de tipos en estructuras primitivas y no primitivas con ayuda de ejemplos de código.
Actualizado 22 jul 2026  · 14 min leer

Explorar con IA

Abrir en ChatGPTAbrir en ClaudeAbrir en Perplexity

En Python, cada valor tiene un tipo de dato. Los tipos de datos clasifican la información e indican al compilador o al intérprete cómo quieres usarla. El tipo define qué operaciones se pueden hacer y cómo se almacena. En ciencia de datos, a menudo necesitarás cambiar el tipo de tus datos para facilitar su uso y manipulación.

Python tiene muchos tipos de datos. Seguramente ya hayas visto y trabajado con algunos de ellos. Tienes enteros e float para valores numéricos, booleanos (bool) para valores verdadero/falso y cadenas para trabajar con caracteres alfanuméricos. También puedes usar listas, tuplas, diccionarios y conjuntos, que son estructuras de datos donde puedes guardar colecciones de valores. Para saber más, echa un vistazo al curso Data Types in Python de DataCamp.

Para ejecutar fácilmente por tu cuenta todo el código de ejemplo de este tutorial, puedes crear gratis un workbook en DataLab con Python preinstalado y todos los ejemplos incluidos.

Comprobar tipos de datos en Python

Antes de convertir tipos de datos, conviene comprobarlos. Python ofrece dos funciones principales:

  • type(): devuelve el tipo de una variable.
  • isinstance(): comprueba si una variable pertenece a un tipo concreto.
a = 5.5
print(type(a))  # Output: <class 'float'>

print(isinstance(a, int))  # Output: False
print(isinstance(a, float))  # Output: True

Conversión implícita y explícita de tipos en Python

La conversión de datos en Python puede producirse de dos formas: o bien le indicas explícitamente al compilador que convierta un tipo a otro, o bien el compilador lo deduce por sí mismo y lo hace por ti. En el primer caso realizas una conversión explícita; en el segundo, una conversión implícita.

Conversión implícita de tipos en Python

La conversión implícita (o coerción) ocurre durante la compilación o en tiempo de ejecución y la gestiona directamente Python. Veamos un ejemplo:

a_int = 1
b_float = 1.0
c_sum = a_int + b_float
print(c_sum)
print(type(c_sum))
 2.0
<class 'float'>

Consejo: puedes usar la función type() en Python para comprobar el tipo de dato de un objeto.

Aprende Python desde cero

Domina Python para la ciencia de datos y adquiere habilidades muy demandadas.
Empieza a Aprender Gratis

En el ejemplo, se suma un entero a_int a un float b_float, y el resultado se convierte automáticamente en float c_sum sin que tengas que indicarlo al compilador. Esto es conversión implícita.

¿Por qué el valor float no se convirtió a entero?

Se debe a un concepto más amplio llamado promoción de tipos. En pocas palabras, es un mecanismo de defensa del compilador que permite realizar operaciones siempre que sea posible convirtiendo tus datos a un supertipo sin perder información.

Es decir, no se convierte de float a entero porque habría que eliminar la parte fraccionaria y se perdería información.

Conversión explícita de tipos en Python

La conversión explícita de tipos, también llamada type casting, ocurre cuando conviertes deliberadamente un valor de un tipo a otro. Este enfoque te da control directo sobre la conversión, ya que especificas explícitamente el tipo de destino en tu código. Se usa cuando la conversión automática (implícita) de Python no cumple con tus necesidades.

La sintaxis para la conversión explícita es:

target_data_type(expression)

Por ejemplo, si quieres convertir un número en coma flotante a entero, escribirías:

int(3.14)  # Convierte 3.14 en 3

Nota: aunque las conversiones explícitas son muy útiles, pueden acarrear pérdida de información. Por ejemplo, al convertir un número en coma flotante a entero se descarta su parte fraccionaria. Es importante entender estas consecuencias para evitar resultados no deseados en tus programas.

Veamos algunas conversiones explícitas habituales.

Estructuras de datos primitivas y no primitivas en Python

Las estructuras de datos primitivas son los bloques básicos para manipular datos y contienen valores simples y puros. Python tiene cuatro tipos de variables primitivas:

  • Enteros
  • Float
  • Cadenas
  • Booleanos

Las estructuras no primitivas no almacenan solo un valor, sino colecciones de valores en distintos formatos. En Python, las estructuras de datos no primitivas son:

  • Listas
  • Tuplas
  • Diccionarios
  • Conjuntos

Puedes aprender más con el tutorial de estructuras de datos en Python de DataCamp.

Conversiones en estructuras de datos primitivas

Conversiones entre enteros y float en Python

Enteros y float son tipos numéricos.

Para convertir un entero a float, usa la función float() en Python. Del mismo modo, si quieres convertir un float a entero, usa int().

a_int = 3
b_int = 2

# Conversión explícita de int a float
c_float_sum = float(a_int + b_int)
print(c_float_sum)
5.0
a_float = 3.3
b_float = 2.0
# Conversión explícita de float a int
c_int_sum = int(a_float + b_float)
print(c_int_sum)

c_float_sum = a_float + b_float
print(c_float_sum)
5
5.3

Problemas de precisión con float y el módulo Decimal

La aritmética en coma flotante en Python puede provocar problemas de precisión:

print(0.1 + 0.2)  # Output: 0.30000000000000004

Para evitarlos, usa el módulo Decimal:

from decimal import Decimal

print(Decimal('0.1') + Decimal('0.2'))  # Output: 0.3

Conversión de números reales a complejos en Python

Puedes convertir enteros en números complejos con complex(real,imag). Recibe dos números (parte real e imaginaria) y crea un número complejo.

real = 2
imag = 5
print(complex(real, imag))
(2+5j)

Conversión de tipos con cadenas en Python

Una cadena es una colección de uno o más caracteres (letras, números, símbolos). Es muy habitual convertir cadenas a números o números a cadenas.

price_cake = 15
price_cookie = 6
total = price_cake + price_cookie
print("The total is: " + total  + "$")

 
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-12-54bd76b9b4bd> in <module>()
      2 price_cookie = 6
      3 total = price_cake + price_cookie
----> 4 print("The total is: " + total  + "$")


TypeError: Can't convert 'int' object to str implicitly

El ejemplo anterior lanza un TypeError: el compilador no puede convertir implícitamente un entero a cadena.

Lo que el programa debería hacer puede parecerte obvio. Sin embargo, el compilador no siempre puede deducirlo, así que te ofrece conversión explícita para que especifiques lo que quieres. Así conviertes un entero en cadena en Python con str():

price_cake = 15
price_cookie = 6
total = price_cake + price_cookie
print("The total is: " + str(total)  + "$")
The total is: 21$

Funciona igual al convertir float a cadena.

En Python, también puedes convertir cadenas a enteros y float siempre que sea posible. Veamos qué significa:

price_cake = '15'
price_cookie = '6'

# Concatenación de cadenas
total = price_cake + price_cookie
print("The total is: " + total + "$")

# Conversión explícita a entero
total = int(price_cake) + int(price_cookie)
print("The total is: " + str(total)  + "$")
The total is: 156$
The total is: 21$

Desglosemos el código.

price_cake y price_cookie son inicialmente cadenas. Como necesitas el total, primero hay que convertirlas a enteros. Si no, el compilador asumirá concatenación de cadenas en lugar de suma numérica. Luego, para mostrar el resultado, conviertes el total a cadena para concatenarlo con el mensaje.

Esperamos que este ejemplo te ayude a ver la importancia de las conversiones de tipos. Aunque sea un caso sencillo, ya puedes apreciar lo útiles que son.

Nota: ¿te fijaste en el "siempre que sea posible" al convertir cadenas a enteros o float? No siempre es posible convertir cadenas a números y operar con ellas. El compilador lo sabe y te dará un error si lo intentas. Mira el ejemplo:

price_cake = 'fifteen'
price_cookie = 'six'
total = int(price_cake) + int(price_cookie)
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-25-80591b8accda> in <module>()
      1 price_cake = 'fifteen'
      2 price_cookie = 'six'
----> 3 total = int(price_cake) + int(price_cookie)


ValueError: invalid literal for int() with base 10: 'fifteen'

Resumen: conversiones de tipos de datos primitivos en Python

Conversión Función Ejemplo Salida
Entero a float float() float(3) 3.0
Float a entero int() int(3.9) 3
Cadena a entero int() int('123') 123
Entero a cadena str() str(123) '123'

Conversiones en estructuras de datos no primitivas

Conversión a tuplas y listas en Python

Al igual que con enteros y float, también puedes convertir listas en tuplas y viceversa.

¿Recuerdas qué son tuplas y listas? Las listas y las tuplas en Python sirven para almacenar colecciones de elementos. La diferencia es que las tuplas son inmutables: una vez definidas, no puedes borrar, añadir ni editar sus valores.

¿Por qué convertir listas en tuplas?

Porque las tuplas, al ser inmutables, permiten optimizar significativamente tus programas.

¿Y por qué convertir tuplas en listas?

Quizá necesites hacer cambios sobre la tupla inicial. Puedes convertirla en lista, modificarla y volver a convertirla en tupla.

En Python, usa tuple() para devolver una versión en tupla del valor que le pases, y list() para convertir una tupla en lista:

a_tuple = ('a', 1) ,('f', 2), ('g', 3)
b_list = [1,2,3,4,5]

print(tuple(b_list))
print(list(a_tuple))
(1, 2, 3, 4, 5)
[('a', 1), ('f', 2), ('g', 3)]

De forma similar, así conviertes una cadena en lista o tupla en Python:

dessert = 'Cake'

# Convertir los caracteres de una cadena en elementos individuales de una tupla
print(tuple(dessert))

# Convertir una cadena en lista
dessert_list = list(dessert)
dessert_list.append('s')
print(dessert_list)
('C', 'a', 'k', 'e')
['C', 'a', 'k', 'e', 's']

Conversión a diccionarios y conjuntos en Python

Puedes usar dict() para convertir una tupla en diccionario y set() para convertir una lista en conjunto.

print(dict(a_tuple))
print(set(b_list))
{'a': 1, 'f': 2, 'g': 3}
{1, 2, 3, 4, 5}

Al igual que con otras funciones de conversión, basta con usar la función adecuada para transformar cualquier tipo de dato en diccionarios o conjuntos.

Uso de dataclasses para datos estructurados (Python 3.7+)

En lugar de diccionarios o tuplas, dataclasses ofrece una forma mejor de manejar datos estructurados.

from dataclasses import dataclass

@dataclass
class Product:
    name: str
    price: float
    in_stock: bool

item = Product("Laptop", 799.99, True)
print(item)  # Output: Product(name='Laptop', price=799.99, in_stock=True)

Resumen: conversiones en estructuras de datos no primitivas en Python

Conversión Función Ejemplo Salida
Lista a tupla tuple() tuple([1, 2, 3]) (1, 2, 3)
Tupla a lista list() list(('a', 1)) ['a', 1]
Cadena a lista list() list('Cake') ['C', 'a', 'k', 'e']
Cadena a tupla tuple() tuple('Cake') ('C', 'a', 'k', 'e')
Tupla a diccionario dict() dict((('a', 1), ('b', 2))) {'a': 1, 'b': 2}
Lista a conjunto set() set([1, 2, 3, 4, 5]) {1, 2, 3, 4, 5}

Unicode y enteros binarios, octales y hexadecimales en Python

Los sistemas de numeración se basan en el número de símbolos usados para representar valores. El sistema que usas a diario es el decimal. En el decimal usas diez símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9. Con estos diez símbolos puedes representar cualquier cantidad. Unicode, binario, hexadecimal y octal hacen referencia a sistemas de numeración diferentes.

Cuando se agotan los símbolos, pasas a la siguiente posición. En decimal, para representar uno más que 9 usas 10: una unidad de decenas y cero unidades. En otros sistemas es distinto. Por ejemplo, en binario solo existen 0 y 1, así que cuando se acaban los símbolos avanzas de posición. Así contarías en binario: 0, 1, 10, 11, 100, 101, etc.

Veamos algunos de estos sistemas con más detalle.

Convertir binario a decimal en Python

Los enteros binarios están representados en base dos. Es decir, solo se usan dos símbolos: 0 y 1. Al contar desde cero en binario te quedas sin símbolos rápidamente: 0, 1, ¿y ahora?

No existe el dígito 2 en binario. En su lugar, usas combinaciones de 1 y 0. En binario, 1000 equivale a 8 en decimal. En binario se usan potencias de dos, así que 8 es básicamente: (1(2^3)) + (0(2^2)) + (0(2^1)) + (0(2^0)) = 8. La posición de los 1 y 0 define la potencia a la que se eleva el 2.

Veámoslo con un ejemplo más complejo:

Binary Number = 1001111
Decimal value = (1*(2^6)) + (0*(2^5)) + (0*(2^4)) + (1*(2^3)) + (1*(2^2)) + (1*(2^1)) + (1*(2^0))
              = 79

En Python, puedes usar la función bin() para convertir de decimal a su valor binario correspondiente.

De forma similar, usa int() para convertir de binario a decimal. int() recibe como segundo argumento la base del número a convertir, que en binario es 2.

a = 79

# Base 2 (binario)
bin_a = bin(a)
print(bin_a)
print(int(bin_a, 2)) # Base 2 (binario)
0b1001111
79

Convertir octal a decimal en Python

Octal es otro sistema con menos símbolos que el decimal. Es base ocho, por lo que usa 0, 1, 2, 3, 4, 5, 6 y 7. Después del 7 viene el 10, ya que el 8 no existe.

Igual que en binario usabas potencias de dos, aquí usarás potencias de ocho.

En el sistema octal, 10 equivale a 8 en decimal. Desglose: (1(8^1)) + (0(8^0)) = 8.

Un ejemplo más complejo:

Octal Number = 117
Decimal value = (1*(8^2)) + (1*(8^1)) + (7*(8^0))
              = 79

En Python, puedes usar oct() para convertir de decimal a su valor octal. Alternativamente, también puedes usar int() con la base 8.

a = 79

# Base 8 (octal)
oct_a = oct(a)
print(oct_a)
print(int(oct_a, 8))
0o117
79

Convertir hexadecimal a decimal en Python

Hexadecimal es un sistema en base 16. A diferencia de binario y octal, usa seis símbolos adicionales más allá de los números del sistema decimal.

¿Qué viene después del 9?

Cuando hacen falta símbolos adicionales, se usan letras. En hexadecimal, la lista completa es 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F.

Usando el mismo ejemplo de antes:

Hexadecimal Number = 4F
Decimal value = (4*(16^1)) + (F*(16^0))
              = 79

En Python, puedes usar hex() para convertir de decimal a su valor hexadecimal, o int() con base 16 para el sistema hexadecimal.

a = 79

# Base 16 (hexadecimal)
hex_a = hex(a)
print(hex_a)
print(int(hex_a, 16))
0x4f
79

Convertir Unicode a carácter

Python chr() convierte enteros Unicode en una cadena. Unicode es un estándar universal de codificación de caracteres para mostrar textos de distintos idiomas.

Hemos proporcionado varios enteros Unicode a la función chr() para mostrar "DATACAMP". También puedes usar ord() para convertir un solo carácter a un entero Unicode.

print(
    chr(68),
    chr(65),
    chr(84),
    chr(65),
    chr(67),
    chr(65),
    chr(77),
    chr(80),
)
D A T A C A M P

Resumen: conversiones entre sistemas numéricos en Python

Conversión Función Ejemplo Salida
Decimal a binario bin() bin(79) 0b1001111
Binario a decimal int() int('1001111', 2) 79
Decimal a octal oct() oct(79) 0o117
Octal a decimal int() int('117', 8) 79
Decimal a hex hex() hex(79) 0x4f
Hex a decimal int() int('4F', 16) 79
Unicode a carácter chr() chr(68) 'D'
Carácter a Unicode ord() ord('D') 68

¡Lo has conseguido!

¡Enhorabuena! Has aprendido a realizar conversiones de tipos de datos en Python, principalmente usando métodos incorporados. Esto te ayudará a trabajar con distintos tipos de datos y te dará más flexibilidad al programar.

Tenemos un excelente curso de Intermediate Python for Data Science donde aprenderás a representar datos con matplotlib y a trabajar con diccionarios y el famoso DataFrame de pandas. También verás cómo controlar el flujo de tu programa con bucles. Al final del curso hay un caso práctico para aplicar todo lo aprendido y poner tus conocimientos en acción.

Proyectos Python para todos los niveles

Mejora tus conocimientos de Python con proyectos de datos del mundo real.

FAQs

¿Cómo conviertes una lista de enteros en una única cadena en Python?

Puedes usar el método join() combinado con map() para convertir cada entero a cadena y concatenarlos.

int_list = [1, 2, 3, 4]
result = ''.join(map(str, int_list))
print(result)  # Output: '1234'
¿Qué ocurre si intentas convertir a entero una cadena no numérica en Python?

Se lanzará un ValueError indicando que la cadena no es un entero válido.

int('abc')  # Raises ValueError: invalid literal for int() with base 10: 'abc'
¿Puedes convertir un conjunto en una lista en Python? ¿Cómo?

Sí, puedes convertir un conjunto en lista usando la función list().

a_set = {1, 2, 3}
a_list = list(a_set)
print(a_list)  # Output: [1, 2, 3]
¿Cómo conviertes una cadena de números separados por espacios en una lista de enteros?

Usa el método split() para dividir la cadena y map() para convertir cada parte a entero.

numbers = "1 2 3 4"
int_list = list(map(int, numbers.split()))
print(int_list)  # Output: [1, 2, 3, 4]
¿Qué función puedes usar para comprobar el tipo de una variable en Python?

Puedes usar la función type() para comprobar el tipo de dato de una variable.

x = 5
print(type(x))  # Output: <class 'int'>

Sejal Jaiswal's photo
Author
Sejal Jaiswal
LinkedIn

Llevo varios sombreros: Desarrollador de Software, Programador, Científico de Datos, Desarrollador de Inteligencia de Negocio, Propietario de Producto

Temas

¡Aprende más sobre Python con estos cursos!

Curso

Introducción a Python

4 h
6.9M
Domina los fundamentos del análisis de datos con Python en cuatro horas y descubre sus paquetes más usados.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

Tutorial

Tutorial de Estructuras de Datos en Python

Introdúcete en las estructuras de datos de Python: aprende más sobre tipos de datos y estructuras de datos primitivas y no primitivas, como cadenas, listas, pilas, etc.
Sejal Jaiswal's photo

Sejal Jaiswal

Tutorial

Python JSON Data: Una guía con ejemplos

Aprende a trabajar con JSON en Python, incluyendo serialización, deserialización, formateo, optimización del rendimiento, manejo de API y comprensión de las limitaciones y alternativas de JSON.
Moez Ali's photo

Moez Ali

Tutorial

Tutorial sobre cómo concatenar cadenas en Python

Aprende varios métodos para concatenar cadenas en Python, con ejemplos que ilustran cada técnica.
DataCamp Team's photo

DataCamp Team

Tutorial

Tutorial y ejemplos de funciones y métodos de listas en Python

Aprende sobre las funciones y métodos de las listas de Python. ¡Sigue ahora los ejemplos de código para list() y otras funciones y métodos de Python!
Abid Ali Awan's photo

Abid Ali Awan

Tutorial

Tutorial Python Docstrings : Ejemplos y Formato de Cadenas Doc Pydoc, Numpy, Sphinx

Aprende sobre las Docstrings de Python. Encuentra diferentes ejemplos y tipos de formato de docstrings para Sphinx, Numpy y Pydoc.
Aditya Sharma's photo

Aditya Sharma

Tutorial

Funciones en Python: cómo llamar y escribir funciones

Descubre cómo escribir funciones en Python reutilizables y eficientes. Domina los parámetros, las sentencias return y temas avanzados como las funciones lambda. Organiza mejor tu código con main() y otras buenas prácticas.
Karlijn Willems's photo

Karlijn Willems

Ver MásVer Más