Ir al contenido principal

Python len(): Guía para principiantes sobre el recuento de elementos en Python

Aprende a utilizar la función len() de Python para averiguar rápidamente el tamaño de cadenas, listas, diccionarios y otras estructuras de datos. Descubre ejemplos prácticos y errores comunes que debes evitar al trabajar con len() en tu propio código.
Actualizado 23 jun 2025  · 6 min de lectura

La función len() es una de las primeras herramientas en las que confían los programadores de Python para inspeccionar datos. Seguro que te has encontrado con len() si estás trabajando a través deh nuestro curso Introducción a Python para programadores o nuestro itinerario de habilidades Fundamentos de la programación en Python.

En este artículo, te mostraré cómo funciona len() en Python en todos los tipos de datos comunes, y te enseñaré qué debes tener en cuenta cuando las cosas van mal.

¿Qué hace la función len() de Python?

Puedes utilizar la función incorporada de Python len() siempre que necesites comprobar cuántos elementos contiene algo. Estoy pensando en contar el número de elementos de una lista o en contar el número de caracteres de una cadena. También puedes utilizarlo para contar las claves de un diccionario. Hay todo tipo de usos.

Así es como se utiliza en su forma más básica:

len(object)

Sólo tienes que poner lo que quieras medir (como las cosas que he enumerado antes) en lugar de object.

Uso de len() con tipos de datos comunes de Python

Antes he enumerado algunos casos de uso común, pero todos eran un poco abstractos. Vamos a trabajar con ejemplos comunes para hacer más evidente el valor de utilizar len().

Contar caracteres en una cadena

Supón que quieres saber la longitud exacta de un trozo de texto, incluidos todos los espacios y signos de puntuación:

word = "Josef"
print(len(word))

Esto imprime 5, ya que la palabra "Josef" (con "f") consta de cinco caracteres.

Comprobar el número de elementos de una lista

Si quieres averiguar cuántos elementos contiene una lista, utiliza esto:

numbers = [10, 20, 30, 40, 50]
print(len(numbers))

Aquí verás 5 como salida.

Obtener el tamaño de una tupla

Las tuplas, al igual que las listas, agrupan elementos, pero son inmutables, lo que significa que no pueden modificarse después de crearlas. len() también funciona en este caso:

dimensions = (1920, 1080)
print(len(dimensions))

Esto produce 2, ya que la tupla almacena dos elementos.

Contar claves en un diccionario

Los diccionarios de Python se basan en pares clave-valor. Cuando utilizas len() en un diccionario, sólo cuenta las claves:

person = {"name": "Alice", "age": 30, "city": "Paris"}
print(len(person))

Así que tienes 3 (una para cada tecla).

Comprobar los elementos únicos de un conjunto

Los conjuntos son prácticos cuando quieres almacenar sólo objetos únicos. len() te lo dirá:

colors = {"red", "green", "blue", "red"}
print(len(colors))

Esto devuelve 3, ya que "red" aparece dos veces pero se cuenta una.

Cómo funciona len() bajo el capó

Tal vez te preguntes, como yo, cómo len() determina realmente el tamaño.

Por debajo, cuando llamas a len() sobre un objeto, Python busca el método __len__ de ese objeto. Los tipos incorporados como listas, cadenas y diccionarios tienen este método.

Saber esto nos dice que, si creamos una clase propia y queremos que len() trabaje con ella, tenemos que definir nosotros mismos un método __len__:

class Box:
    def __init__(self, items):
        self.items = items

    def __len__(self):
        return len(self.items)

my_box = Box(["apple", "banana", "orange"])
print(len(my_box))

Aquí, len() devuelve 3, porque la caja contiene tres objetos. Al igual que hicimos con las listas y las cadenas, len() se adapta siempre que el objeto proporcione un método __len__.

¿Qué ocurre cuando len() no funciona?

Por supuesto, no todo en Python tiene una longitud. Si intentas utilizar len() en algo que no lo admite (te lo mostraré en un segundo con un tipo de datos int ) Python te lo hará saber con un TypeError. Esto es algo habitual, sobre todo si se trabaja con tipos de datos mixtos. Por ejemplo:

num = 42 
print(len(num))

Esto provoca el siguiente error:

TypeError: object of type 'int' has no len()

Siempre que veas esto, comprueba que el objeto que estás midiendo es realmente un contenedor o secuencia (cadena, lista o diccionario) y que no es un valor único como un entero o un flotante.

Algunos casos prácticos de len()

No intentemos elevar los ejemplos para que se parezcan más a situaciones de programación del mundo real.

Bucle for con un rango

Cuando necesites recorrer una lista utilizando sus índices, len() te ayudará a establecer el rango adecuado para tu bucle:

fruits = ["apple", "banana", "cherry"]

for i in range(len(fruits)):
    print(f"Index {i}: {fruits[i]}")

Esto imprime cada fruta junto a su índice, lo que te proporciona orden y contexto.

Index 0: apple
Index 1: banana
Index 2: cherry

Comprobación de envases vacíos

Con frecuencia, querrás saber si un contenedor -como una lista o un diccionario- está vacío antes de continuar:

cart = []

if len(cart) == 0:
    print("Your shopping cart is empty.")

Este patrón te ayuda a evitar errores o procesamientos innecesarios cuando no hay nada con lo que trabajar.

Truncar cadenas largas

Si trabajas con entradas de usuario o muestras etiquetas, puede que quieras limitar la longitud de las cadenas. len() te ayuda a imponer esos límites:

username = "superlongusername"

if len(username) > 10:
    username = username[:10]
    print(username)

Aquí, cualquier nombre de usuario de más de 10 caracteres se recorta.

Errores comunes con len()

len() puede hacerte tropezar, aunque tengas cierta experiencia con Python:  

  • Intenta utilizar len() con enteros o flotantes: Los números no son colecciones, por lo que no tienen longitud.

  • Olvidando que len() cuenta elementos, no valores: En un diccionario, len cuenta las claves, aunque varias claves apunten al mismo valor.

  • Suponiendo que len() funcione con todo: Las clases personalizadas necesitan un método __len__; de lo contrario, len() no sabrá qué hacer.

Intenta recordar estas reglas para ahorrar tiempo depurando.

Tratamiento de errores con len()

Dado que len() puede plantear un TypeError si se utiliza mal, conviene preparar tu código para esta posibilidad, sobre todo cuando trabajes con datos impredecibles. Un bloque try-except es una forma sencilla de gestionar estos errores con elegancia:

data = 123

try:
    print(len(data))
except TypeError:
    print("Object has no length.")

En lugar de bloquearse, tu programa ahora imprime un mensaje amigable. Nuestro curso de Programación Orientada a Objetos en Python es un gran recurso para mejorar en este tipo de cosas. 

Uso de len() con clases personalizadas

Volvamos a las clases personalizadas. Una clase personalizada es cualquier clase que definas tú mismo utilizando la palabra clave class, como cuando modelas algo específico de tu programa, como un Team, Box, o Library. Antes has visto que len() funciona en tipos incorporados como listas y diccionarios porque implementan un método especial llamado __len__(). Lo mismo se aplica a tus propias clases. Si quieres que len() funcione en ellos, tienes que definir tú mismo __len__().

No pretendo aturdirte con detalles técnicos. Creo que merece la pena mencionar esto porque es importante cuando construyes contenedores de datos personalizados que deben comportarse como colecciones nativas de Python. Al soportar len(), tus objetos pueden interactuar de forma más natural con el resto del ecosistema Python, incluidas otras funciones y bibliotecas.

He aquí un resumen rápido:

class Team:
    def __init__(self, players):
        self.players = players

    def __len__(self):
        return len(self.players)

my_team = Team(["Alice", "Bob", "Cathy"])
print(len(my_team))

De nuevo, len() devuelve 3, que es la respuesta correcta, ya que éste es el número de jugadores de tu equipo.

Conclusión

La próxima vez que necesites contar, medir o verificar el tamaño de algo en Python, recuerda que len() es una gran opción.

Pero ahora que hemos llegado al final, quiero mencionar otra cosa importante. Nos hemos centrado en una función, pero casi siempre hay muchas formas distintas de conseguir algo en Python. Tenemos un artículo que incluso muestra muchas formas diferentes de hallar la longitud de una lista, de las cuales la función len() es sólo una opción: Tamaño de la lista Python: 8 Métodos diferentes para hallar la longitud de una lista en Python.

Sigue practicando nuevos métodos. Es una forma segura de convertirte en un programador más fuerte. Y recuerda matricularte en nuestro programa de habilidadesde programación en Python, que te enseñará a optimizar código, escribir funciones y pruebas, y mucho más.


Josef Waples's photo
Author
Josef Waples
Temas

Aprende Python con DataCamp

Curso

Introducción a Python

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

Tutorial

Función Print() de Python

Aprenda cómo puede aprovechar la capacidad de una simple función de impresión de Python de varias maneras con la ayuda de ejemplos.
Aditya Sharma's photo

Aditya Sharma

Tutorial

Python Copy List: Lo que debes saber

Comprende cómo copiar listas en Python. Aprende a utilizar las funciones copy() y list(). Descubre la diferencia entre copias superficiales y profundas.
Allan Ouko's photo

Allan Ouko

Tutorial

Tutorial de funciones de Python

Un tutorial sobre funciones en Python que cubre cómo escribir funciones, cómo invocarlas y mucho más.
Karlijn Willems's photo

Karlijn Willems

Ver másVer más