pugliasos newlogoDEF

Orario della segreteria: tutti i martedì, dalle ore 17 alle 19, su appuntamento.

Le liste

La lista, o elenco, è un insieme ordinato di più elementi in un'unica variabile; essa vienecreata utilizzando le parentesi quadre; ad esempio:

invitati = ['Giovanni', 'Michelangelo', 'Riccardo', 'Angelo']
print(invitati)

['Giovanni', 'Michelangelo', 'Riccardo', 'Angelo']

Le parentesi quadre indicano l'inizio e la fine della lista.

È possibile creare una lista vuota, []

Gli elementi della lista sono

  • ordinati,
    cioè gli elementi hanno un ordine definito e sono indicizzati (ognuno memorizzato per posizione)
  • modificabili,
    sono mutabili, cioè è possibile aggiungere o rimuovere elementi dopo che la lista è stata creata; se si aggiungono nuovi elementi, questi verranno posti alla fine della lista
  • consentono valori duplicati, ciò è possibile poiché gli elementi sono distinti per l'indice e non per il valore
  • possono essere di qualsiasi tipo di dati, anche un'altra lista1
  • non necessariamente omogenee; cioè possono essere anche di tipo diverso fra loro

In Python le liste sono definite come oggetti di tipo list e possono essere passati come attributi di funzioni.

Il ciclo for che abbiamo visto per le stringhe è applicabile anche alle liste.

Esercizio

Scrivere una lista di numeri interi ed un programma che, con il ciclo for, sommi tutti i suoi elementi.

Una possibile soluzione

lista = [3, 6, 9, 12, 15]
somma = 0
for numero in lista:#per ciascun numero presente in lista
  somma += numero
print(f"Il risultato della somma è {somma}")
# print(sum(lista))

Esercizio

Scrivere un programma che moltiplichi tra loro tutti gli elementi di una lista diversi da zero.

Una possibile soluzione

lista = [3, 6, 9, 12, 15]
prodotto = 1
for numero in lista:
  if numero != 0:
      prodotto *= numero
print(f"Il risultato della moltiplicazione fra tutti gli elementi della lista è {prodotto}")

Esercizio

Scrivere una funzione che, data una lista di numeri, disegni un istogramma orizzontale con il carattere speciale █ (FULL BLOCK)

numeri = [3, 9, 6, 15]
def istogramma(lista):
  for numero in lista:
    print("█" * numero)
    # print(chr(9608) * numero)
istogramma(numeri)

Risultato

███

█████████

██████

███████████████

� Esercizio

Scrivere una lista di numeri interi ed un programma che, senza usare la funzione max(), ne visualizzi il più grande utilizzando il for e l'if.

Una possibile soluzione

numeri = [42, 9, 23, 11, 17, 56, 3]
massimo = numeri[0]
for numero in numeri:
  if numero > massimo:
    massimo = numero
print(f"Il numero maggiore della lista {numeri} è: {massimo}")
# print(max(numeri))

Accesso agli elementi di una lista

Proprio perché gli elementi della lista sono indicizzati, è possibile accedervi facendo riferimento al loro indice2; si tenga presente che il primo di essi ha indice 0 e non 1. All'uopo si fa uso dell'operatore porzione [ ] o slicing.

Esempi:

lista = ['Giovanni', 20, 'Riccardo', True]
print(lista[2]) # terzo elemento della lista (1)
print(lista[0:2]) # primo e secondo elemento della lista (2)
print(lista[:2]) # primo e secondo elemento della lista (3)
print(lista[1:4]) # secondo, terzo e quarto elemento (4)
print(lista[1:]) # dal secondo all'ultimo elemento (5)
print(lista[-1]) # dall'ultimo a ritroso (6)

Risultati

Riccardo # (1)

['Giovanni', 20] # (2)

['Giovanni', 20] # (3)

[20, 'Riccardo', True] # (4)

[20, 'Riccardo', True] # (5) True # (6)

Dagli esempi si evince:

  • è possibile specificare un intervallo di indici indicandone l'inizio e la fine:il valore restituito sarà ancora una lista costituita dagli elementi individuati mediante gli indici
  • a differenza dell'elemento avente come indice il limite inferiore dell'intervallo il quale viene incluso nella nuova lista, l'elemento avente come indice l'estremo superiore viene escluso
  • se viene omesso il limite inferiore dell'intervallo, la nuova lista inizierà dal primo elemento, cioè quello di indice 0
  • se viene omesso il limite superiore dell'intervallo, la nuova lista inizierà dall'elemento avente per indice l'estremo inferiore e proseguirà fino all'ultimo elemento della lista
  • se si indicano indici negativi, la ricerca inizia dalla fine della lista
  • se si indica un intervallo con estremi negativi, in questo caso viene escluso l'elemento avente per indice l'estremo inferiore.

Per controllare se Giovanni è presente nella lista degli invitati, si può ricorrere all'operatore booleano3 in; tre esempi:

Esempio 1

invitati = ['Giovanni', 'Michelangelo', 'Riccardo', 'Angelo']
x = 'Giovanni' in invitati
print(x)

Risultato

True

Esempio 2

invitati = ['Giovanni', 'Michelangelo', 'Riccardo', 'Angelo']
if 'Giovanni' in invitati:
  print('Giovanni è nella lista degli invitati')

Risultato:

Giovanni è nella lista degli invitati

Angelo G. ha proposto che sia l'utente a digitare l'elemento per il quale determinare l'appartenenza o meno alla lista con il seguente codice:

invitati = ["Angelo","Federico","Giovanni","Marta"]
x = input("E' tra gli invitati? ")
if x in invitati:
  print(f"{x} è tra gli invitati")
else:
  print(f"{x} non è tra gli invitati")

Anche combinando not con in, è possibile sapere se un elemento non è contenuto nella lista:

Esempio 3

invitati = ['Giovanni', 'Michelangelo', 'Riccardo', 'Angelo']
if 'Giuseppe' not in invitati:
  print('Giuseppe non è stato invitato')

Risultato

Giuseppe non è stato invitato

E se si vuol sapere il numero degli elementi della lista? Basta usare la la funzione integrata len()

invitati = ['Giovanni', 'Michelangelo', 'Riccardo', 'Angelo']
print(len(invitati))

Risultato

4

______________________

NOTE

1 In tal caso si parla di lista annidata.

2 Un indice può essere sia un numero intero, sia una espressione che produca un numero intero.

3 Nel senso che restituisce vero o falso.

Save
Cookies user preferences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
Read more
Analytics
Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
Google Analytics
Accept
Decline