Menu
Coddy logo textTech

¿Qué es un array?

Un array es una estructura de datos que guarda una colección de valores del mismo tipo en un único bloque continuo de memoria. A cada valor, llamado elemento, se llega por su número de posición, llamado índice, que en la mayoría de los lenguajes empieza en 0.

Por Kevin Spektor, Cofundador y CTO

Actualizado el 24 de septiembre de 2026

Una aplicación del tiempo que muestra las temperaturas de la semana necesita siete números. Podría usar siete variables separadas, monday, tuesday y así sucesivamente, pero entonces ningún bucle podría recorrerlas, y añadir un octavo día obligaría a escribir código nuevo. Un array (en español también se dice arreglo o vector) pone los siete números bajo un solo nombre, temperatures, en huecos numerados del 0 al 6.

Cómo funciona un array

Un array mantiene sus elementos uno al lado de otro en un solo bloque de memoria, y cada elemento ocupa el mismo número de bytes. Esa disposición permite al ordenador encontrar cualquier elemento con un solo cálculo:

address of element i = start address + i × element size

Supón que un array de enteros de 32 bits (4 bytes cada uno) empieza en la dirección de memoria 1000. El elemento 0 está en 1000, el elemento 1 en 1004, el elemento 2 en 1008 y el elemento 3 en 1012. Llegar al elemento 3 o al elemento 3.000.000 cuesta el mismo único paso, y por eso leer un array por índice se llama tiempo constante, que se escribe O(1).

El módulo array de Python guarda números en bruto de esta forma, así que puedes comprobar la aritmética:

4 bytes per element
16 bytes in total
scores[0] = 90 at address 1000
scores[1] = 75 at address 1004
scores[2] = 88 at address 1008
scores[3] = 62 at address 1012

Esta fórmula también explica por qué la mayoría de los lenguajes cuentan desde 0. El índice es un desplazamiento: cuántos elementos hay que saltar desde el principio. El primer elemento está a 0 elementos del principio, así que su índice es 0, y el último elemento de un array de longitud n tiene índice n − 1. Unos pocos lenguajes, como Lua, MATLAB, R y Fortran, empiezan en 1.

Usar un array en Python

La mayor parte del código Python usa la list integrada como array. La creas con corchetes, lees y cambias elementos por índice y pides su longitud con len():

18
25
19
5
[18, 22, 25, 23, 19, 20]

Un índice negativo cuenta desde el final, así que temperatures[-1] es el último elemento. Ese atajo es de Python; C y Java no tienen índices negativos.

Cuánto cuestan las operaciones de un array

La disposición continua hace que unas operaciones sean rápidas y otras lentas. El coste crece con n, el número de elementos:

OperaciónEjemplo en PythonCoste
Leer o cambiar un elemento por índicea[3] = 7O(1), un paso
Añadir un elemento al finala.append(7)O(1) de media
Insertar o quitar al principioa.insert(0, 7)O(n), todos los elementos se desplazan
Buscar un valor en un array sin ordenar7 in aO(n), revisa uno por uno
Buscar un valor en un array ordenadobúsqueda binariaO(log n)

Insertar al principio es lento porque todos los elementos tienen que moverse un hueco para hacer sitio. Buscar en un array sin ordenar significa hacer una búsqueda lineal por cada elemento uno tras otro, mientras que un array ordenado permite la búsqueda binaria, que parte por la mitad el rango restante en cada paso.

Recorrer un array con un bucle

Los arrays y los bucles van juntos: un bucle visita cada elemento por turno, lo que se llama iteración. Las mismas pocas líneas sirven para un array de 5 elementos o de 5 millones.

Total: 28.5
Most expensive: 12.0

Los arrays en otros lenguajes

En C, un array tiene un tamaño fijo que se decide al declararlo, y guarda valores en bruto de un solo tipo. sizeof indica su tamaño en bytes:

int scores[5] = {90, 75, 88, 62, 100};   /* 5 × 4 bytes = 20 bytes */

Los arrays de Java también tienen una longitud fija, y los elementos nuevos empiezan con un valor por defecto, como 0 para los números. Cuando necesitas en Java un array que crezca, usas ArrayList:

int[] scores = new int[5];   // five elements, all 0
scores[0] = 90;

Los arrays de JavaScript crecen y encogen libremente y pueden mezclar tipos, como en [1, "two", true].

Los arrays que crecen, como la list de Python, el ArrayList de Java y el std::vector de C++, se llaman arrays dinámicos. Reservan espacio extra al final. Cuando ese espacio se acaba, reservan un bloque más grande, copian en él todos los elementos y siguen. Las copias son lo bastante poco frecuentes como para que añadir elementos siga siendo rápido de media.

Un array también puede contener otros arrays. grid[row][col] lee una celda de un array bidimensional, la disposición que se usa para tableros de juego, hojas de cálculo e imágenes. La guía de C sobre arrays multidimensionales muestra cómo se colocan en memoria.

Errores comunes

Pasarse por uno. Un array de 3 elementos tiene los índices 0, 1 y 2, así que el índice 3 está fuera del final. Python se detiene con un error:

IndexError: list index out of range

Java lanza una ArrayIndexOutOfBoundsException, y JavaScript devuelve undefined sin avisar. C no hace ninguna comprobación: leer más allá del final es comportamiento indefinido, que puede devolver basura o hacer que el programa falle con un segmentation fault.

Copiar con una asignación. En Python, Java y JavaScript, b = a no copia un array; los dos nombres se refieren al mismo, así que cambiar b cambia a. Usa a.copy() en Python o [...a] en JavaScript para hacer una copia real. La página de la variable explica por qué.

Qué leer después

Un array solo es útil con un bucle que lo recorra, así que lee a continuación qué es la iteración, y qué es un byte para la unidad que hay detrás de los tamaños de elemento de arriba. La guía de listas en Python trata el slicing, la ordenación y los métodos de las listas, y la visualización de la lista enlazada muestra la estructura que cambia el acceso rápido por índice por inserciones rápidas.

Preguntas frecuentes

¿Qué es un array en matemáticas?
En matemáticas elementales, una matriz de objetos es un conjunto de objetos colocados en filas y columnas iguales, por ejemplo 3 filas de 4 puntos. Se usa para mostrar la multiplicación: al contar los puntos sale 3 × 4 = 12. Un array bidimensional en un programa es la misma imagen, con un valor en cada posición.
¿Qué es un ejemplo de array?
Una lista con las temperaturas de una semana, [18, 21, 25, 23, 19, 17, 20], es un array de siete números, donde temperatures[0] es el valor del lunes. Otros ejemplos cotidianos son los píxeles de una fila de una imagen, los caracteres de un string y las puntuaciones de la clasificación de un juego.
¿Cómo se le explica un array a un niño?
Compáralo con una huevera. La huevera tiene un solo nombre, tiene un número fijo de huecos en fila y cada hueco guarda un huevo. Encuentras un huevo por el número de su hueco, y los programadores empiezan a contar los huecos desde 0.
¿Qué hay dentro de un array?
Un array contiene elementos, los valores individuales guardados en él, cada uno en su propio índice. En C y Java todos los elementos tienen el mismo tipo, por ejemplo todos int o todos double. Las listas de Python y los arrays de JavaScript pueden mezclar tipos, porque guardan referencias a los valores en lugar de los propios valores.
¿Cuál es la diferencia entre un array y una lista?
Un array guarda sus elementos uno junto a otro en memoria, así que se puede llegar a cualquier elemento directamente por su índice. Una lista enlazada guarda cada elemento por separado con un puntero al siguiente, así que llegar al elemento 1.000 obliga a pasar por los 999 primeros. La list que trae Python no es una lista enlazada: es un array dinámico que crece a medida que añades elementos.
Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR