La gestione di una lista richiede in primis la sua definizione, come sempre deve avvenire:
lista[0]=b
quindi si usa il semplice comando:
lista.append(b)
L’usa delle liste dinamiche è utile se non si conoscono le dimensioni della lista che si vuole gestire ma ha lo svantaggio che se non usata in maniera oculata essa potrebbe portare al riempimento della memoria.
E’ una struttura dati da sconsigliare oppure da usare mettendo sempre e comunque un limite.
Con il seguente comando conosco la lunghezza della lista:
n=len(lista)
Per vedere a video la lista posso usare questo semplice metodo:
print(lista)
oppure posso stampare in orizzontale i suoi elementi:
for i in range(0,n):
print(lista[i],” “,end=’ ‘)
Con il seguente comando verifico che si siano immessi dei valori numerici:
if(g>47 and g<58):
b=int(b)
lista[0]=b
da notare che controllo il tipo di dato nella sua rappresentazione interna.
Con il comando:
b=b.upper()
faccio diventare maiuscolo la lettera immessa.
Il seguente programma effettua la somma dei numeri immessi in una lista dinamica finchè l’utente non inserisce la lettera S maiuscola.
#
Python 3.6.2
#Autore: Francesco Bragadin
#Data creazione: 28/12/2018
#Ultima modifica: 28/12/2018
#
#Nome file: listadinamica.py
#
#Commenti:
#lista di dimensione infinita e somma dei suoi elementi
#solo in python ho liste dinamiche con allocazione infinita
#da sconsigliare in quanto occupa dimensione infinita di memoria
#
#definisco l’oggetto lista
lista=[0]
b=0
g=0
#inserisco il primo valore della lista
b=input(“Inserisco il valore finchè non scrivi S: “)
#controllo che il valore sia un intero per effettuarbi la somma
g=ord(b)
if(g>47 and g<58):
#quindi posso fare la conversione da stringa ad intero senza mai sbagliare
b=int(b)
lista[0]=b
else:
b=b.upper()
#uso del ciclo while finisco il ciclo finchè non inserisco il valore S
while b!=’S’:
b=input(“Inserisco il valore finchè non scrivi S: “)
g=ord(b)
if(g>47 and g<58):
#quindi posso fare la conversione da stringa ad intero senza mai sbagliare
b=int(b)
lista.append(b)
#il comando append inserisce un elemento in fondo alla lista
else:
b=b.upper()
#voglio sapere quanti sono i valori che ho inserito
n=len(lista)
print(“Lunghezza della lista: “, n)
print(“Lista primo metodo”)
print(lista)
#oppure la stampo elemento per elemento in orizzontale – terzo metodo –
print(“Terzo metodo di stampa della lista”)
for i in range(0,n):
print(lista[i],” “,end=’ ‘)
#mi serve solo per andare a capo
print(‘ ‘)
s=0
#Sommo gli elementi della lista
#Da notare che la prima volta del ciclo s=0
#le volte successiva s memorizza il valore precedente e lo somma al nuovo
#valore del vettore
for i in range(0,n):
s=s+lista[i]
#la somma dei suoi elementi
print(“La somma degli elementi risulta: “,s)
b=int(b)
lista[0]=b