616 votos

¿Cómo declaro un array en Python?

¿Cómo declaro un array en Python?

413voto

sepp2k Puntos 157757
variable = []

Ahora variable se refiere a una lista vacía*.

Por supuesto, esto es una asignación, no una declaración. No hay forma de decir en Python "esta variable nunca debe referirse a nada que no sea una lista", ya que Python es de tipado dinámico.


*El tipo predeterminado incorporado de Python se llama una lista, no un array. Es un contenedor ordenado de longitud arbitraria que puede contener una colección heterogénea de objetos (sus tipos no importan y pueden mezclarse libremente). Esto no debe confundirse con el array module, que ofrece un tipo más cercano al tipo array en C; los contenidos deben ser homogéneos (todos del mismo tipo), pero la longitud sigue siendo dinámica.

190voto

Anton Purin Puntos 418

Este es un tema sorprendentemente complejo en Python.

Respuesta práctica

Los arrays están representados por la clase list (ver referencia y no los confundas con generadores).

Consulta ejemplos de uso:

# array vacío
arr = [] 

# inicializar con valores (puede contener tipos mixtos)
arr = [1, "anguilas"]

# obtener elemento por índice (puede ser negativo para acceder al final del array)
arr = [1, 2, 3, 4, 5, 6]
arr[0]  # 1
arr[-1] # 6

# obtener longitud
longitud = len(arr)

# soporta append e insert
arr.append(8)
arr.insert(6, 7)

Respuesta teórica

Bajo el capó, el list de Python es un envoltorio para un array real que contiene referencias a elementos. Además, el array subyacente se crea con un espacio extra.

Las consecuencias de esto son:

  • el acceso aleatorio es muy barato (arr[6653] es igual a arr[0])
  • la operación append es 'gratuita' pero requiere espacio extra
  • la operación insert es cara

Consulta esta impresionante tabla de complejidad de operaciones.

También, por favor, revisa esta imagen, en la que he intentado mostrar las diferencias más importantes entre array, array de referencias y lista enlazada: arrays, arrays everywhere

141voto

Lennart Regebro Puntos 52510

En realidad no declaras cosas, pero así es como creas una matriz en Python:

from array import array
intarray = array('i')

Para más información, consulta el módulo de arrays: http://docs.python.org/library/array.html

A lo mejor no quieres una matriz, sino una lista, pero otros ya han respondido eso. :)

67voto

limitCracker Puntos 377

Creo que querrías una lista con las primeras 30 celdas ya llenas. Entonces

   f = []

   for i in range(30):
       f.append(0)

Un ejemplo de dónde esto podría usarse es en la secuencia de Fibonacci. Vea el problema 2 en Project Euler

38voto

Beterhans Puntos 1

Así es como:

my_array = [1, 'rebecca', 'allard', 15]

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X