Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Liste e Tabelle
LISTE, OPERAZIONI CON LISTE, LISTE
ANNIDATE
Capitolo 6
print(values[5]) values[5] = 87
values[4]
values = [4]
scores = [10, 9, 7, 4, 5]
values = scores # copia la lista di riferimenti
last = values[-1]
print("l'ultimo elemento
della lista è", last)
last = values[len(values)-1]
# equivalente: accede all'ultimo elemento
#1
friends = ["Harry",
"Emily", "Bob", "Cari"]
#2
friends.insert(1, "Cindy")
https://padlet.com/refe/inf
Il contrario di == è !=
[1, 4, 9] != [4, 9] # True
temperatures[ : ] = []
o Cancello tutti gli elementi della lista (equivalente a temperatures.clear())
https://www.programiz.com/python-programming/list
https://docs.python.org/3/library/stdtypes.html#mutable-sequence-types
Politecnico di Torino, 2021/22 INFORMATICA / COMPUTER SCIENCES 48
Riepilogo delle operazioni predefinite per liste
Il metodo .insert() inserisce un elemento in una data posizione
della lista
L’operatore in verifica se un elemento sia contenuto in una lista
Il metodo .pop() rimuove un elemento da una data posizione
della lista
Il metodo .remove() toglie un elemento da una lista sulla base
del suo valore
Due liste possono essere concatenate usando l’operatore (+)
La funzione list() crea la copia di una lista esistente
L’operatore di slice (:) estrae una sottolista o una sottostringa
values = []
for i in range(n):
values.append(i * i)
https://docs.python.org/3/library/stdtypes.html#str.join
https://docs.python.org/3/library/stdtypes.html#str.split
smallest = values[0]
for i in range(1, len(values)):
if values[i] < smallest:
smallest = values[i] # equivalente a
smallest = min(values)
i = 0
while i < len(words):
word = words[i]
if len(word) < 4:
words.pop(i) # cancella l’elemento i-esimo
# NON incrementare i
else:
i = i + 1
def sumsq(values):
total = 0
for element in values:
total = total + element**2
return total
def squares(n):
result = []
for i in range(n):
result.append(i * i)
return result
triple = 5, 10, 15
Nota: le tuple sono una struttura dati avanzata, con molte altre caratteristiche. In questo corso non saranno approfondite.
lista [1, 2, 3]
(lista[0], lista[2]) = (lista[2], lista[0])
invertiti = []
for giorno in giorni:
invertiti.append(giorno[::-1])
print(invertiti)
# ['ìdenuL', 'ìdetraM', 'ìdelocreM', 'ìdevoiG', 'ìdreneV',
'otabaS', 'acinemoD']
righe = 'ABCD'
colonne = '1234'
caselle = [r + c for r in righe for c in colonne]
# ['A1', 'A2', 'A3', 'A4', 'B1', 'B2', 'B3', 'B4', 'C1',
'C2', 'C3', 'C4', 'D1', 'D2', 'D3', 'D4']
def main():
scores = readFloats()
if len(scores) > 1:
removeMinimum(scores)
removeMinimum(scores)
total = sum(scores)
print("Final score:", total)
else:
print("At least two scores are required.")
values.pop(smallestPosition)
return counters
i=0
j = … (lo vedremo tra poco) i j
Finché … (non sappiamo ancora la condizione)
Scambia gli elementi nelle posizioni i e j
i=i+1
j=j+1
Politecnico di Torino, 2021/22 INFORMATICA / COMPUTER SCIENCES 127
Sviluppo di un algoritmo
Prendere due posizioni (indici) per il primo scambio e iniziare il ciclo
o Il primo scambio è con i = 0
Qual è il valore iniziale di j per gestire qualsiasi numero di elementi?
o con 8 monete, l’indice j è 4
Quando si dovrà interrompere il ciclo?
o con 8 monete, devo effettuare 4 scambi
i=0
j = lunghezza // 2 i j
Finché i < lunghezza // 2
Scambia gli elementi nelle posizioni i e j
i=i+1
j=j+1
Politecnico di Torino, 2021/22 INFORMATICA / COMPUTER SCIENCES 128
Programma completo: swaphalves.py (1)
##
# Il programma scambia tra loro le due metà di una lista.
#
def main():
values = [9, 13, 21, 4, 11, 7, 1, 3]
i = 0
j = len(values) // 2
while i < len(values) // 2:
swap(values, i, j)
i = i + 1
j = j + 1
print(values)
table = []
coltotal = 0
for i in range(COUNTRIES):
coltotal = coltotal + counts[i][j]
Politecnico di Torino, 2021/22 INFORMATICA / COMPUTER SCIENCES 141
Esercizio
Scrivere un ciclo che sommi
0 1 2 3 4 5 6 7 8 9
gli elementi sulla diagonale
principale della tabella 10 x 10 11 12 13 14 15 16 17 18 19
10 creata in precedenza. 20 21 22 23 24 25 26 27 28 29
Scrivere un ciclo che sommi 30 31 32 33 34 35 36 37 38 39
gli elementi sulla diagonale 40 41 42 43 44 45 46 47 48 49
secondaria della tabella. 50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99