Listas de tamaño N
Supongamos que queremos realizar una gráfica de ruido gausiano, para esto necesitamos 1000 valores aleatorios que se optienen de una distribución uniforme, o que queremos almacenar las medidas que un sensor de temperatura toma cada 5 minutos durante todo el día. Es muy poco práctico colocar 1000 valores a mano, además en el segundo caso podríamos no saber cuántos espacios en memoria debemos reservar para guardar todas las muestras (por ejemplo en algún momento el sensor toma más muestras de las que se espera).
Para solucionar este problema necesitamos una asignación de espacio un poco más “dinámica”.
En python existe una función que nos permite agregar un elemento al final de una lista, esta función se llama append().Con esta función podemos agregar a una lista un elemento nuevo en el momento que queramos y también podemos hacer listas vacías ( o inicializadas en algún valor) de cualquier tamaño que posteriormente podemos llenar con algún elemento.
Ejemplo 1:
#Lista vacía de n posiciones
n=10 # tamaño de la lista
Lista=[] #primero se crea una lista vacía
for i in range (n) :
Lista.append( [] ) #se concatenan espacios vacíos es la lista
print (Lista) #se imprime la lista vacía
Lista[2]='usando espacio' # se modifica el espacio "vacío" en la posición 2
print(Lista) #se imprime la lista luego de usar un espacio
#Salida
>>[[], [], [], [], [], [], [], [], [], []]
>>[[], [], 'usando espacio', [], [], [], [], [], [], []]
En lugar de “append([])” que lo que hace es agregar espacios en blanco, pudimos usar “append(0)”
que llenara la lista con 0s, Asi
#Lista inicializada en 0
Lista=[] #primero se crea una lista vacía
n=10 # tamaño de la lista
for i in range (n) :
Lista.append(0) #se concatenan 0s
print (Lista) #se imprime la lista con 0s
#Salida
>>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
La función append() es bastante flexible y se puede usar de muchas formas ,por ejemplo se podría usar append(random.randint( 0,10)) para darle valores iniciales aleatorios entre 0 y 10
Además de append() hay otra forma de agregar un valor a una lista, Veamos
#Lista vacía de n posiciones
n=10 # tamaño de la lista
Lista=[] #primero se crea una lista vacía
for i in range (n) :
Lista=Lista+[0] #se concatenan 0s al final de la lista
print (Lista) #se imprime la lista antes de modificarla
Lista=["al comienzo"]+Lista #agrega un elemento al comienzo de la lista
Lista=Lista+["al final"] #agrega un elemento al final de la lista
print (Lista) #se imprime la lista luego de usar un espacio
#Salida
>>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>['al comienzo', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'al final']
De esta forma se da un poco más de flexibilidad, ya que podemos colocar valores al comienzo o al final de una lista