¿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.
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ón | Ejemplo en Python | Coste |
|---|---|---|
| Leer o cambiar un elemento por índice | a[3] = 7 | O(1), un paso |
| Añadir un elemento al final | a.append(7) | O(1) de media |
| Insertar o quitar al principio | a.insert(0, 7) | O(n), todos los elementos se desplazan |
| Buscar un valor en un array sin ordenar | 7 in a | O(n), revisa uno por uno |
| Buscar un valor en un array ordenado | búsqueda binaria | O(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?
¿Qué es un ejemplo de array?
[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?
¿Qué hay dentro de un array?
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?
list que trae Python no es una lista enlazada: es un array dinámico que crece a medida que añades elementos.