Riferimenti: SoftPython - matrice di liste 2
Esc
Summer School Data Science 2023 - Modulo 1 informatica: Moodle
Docente: David Leoni david.leoni@unitn.it
Esercitatore: Luca Bosotti luca.bosotti@studenti.unitn.it
Esempi: diag¶✪✪ Data una matrice n x n
|
def diag(mat):
raise Exception('TODO IMPLEMENT ME !')
# TEST
m = [ ['a','b','c'],
['d','e','f'],
['g','h','i'] ]
assert diag(m) == ['a','e','i']
try:
diag([
['a','b']
])
raise Exception("Dovrei aver fallito !")
except ValueError:
pass
print("Test passati!")
|
Esempi: is_utriang¶RITORNA DOMANDA: è sempre necessario percorrere tutta la matrice? |
def is_utriang(mat):
raise Exception('TODO IMPLEMENT ME !')
assert is_utriang([ [1] ]) == True
assert is_utriang([ [3,2,5],
[0,6,2],
[0,0,4] ]) == True
assert is_utriang([ [3,2,5],
[0,6,2],
[1,0,4] ]) == False
assert is_utriang([ [3,2,5],
[0,6,2],
[1,1,4] ]) == False
assert is_utriang([ [3,2,5],
[0,6,2],
[0,1,4] ]) == False
assert is_utriang([ [3,2,5],
[1,6,2],
[1,0,4] ]) == False
|
La trasposta $M^T$ di una matrice $M$ è definita come $M^T[i][j] = M[j][i]$
Data una matrice mat
come lista di liste $n$ x $n$, la MODIFICA facendo la trasposta in-place
ValueError
Esempio:
>>> m = [ ['a','b','c'],
['d','e','f'],
['g','h','i'],
]
>>> trasposta(m)
>>> m
[ ['a','d','g'],
['b','e','h'],
['c','f','i'],
]
Vai alla prossima slide...
def trasposta(mat):
raise Exception('TODO IMPLEMENT ME !')
# TEST
m1 = [ ['a'] ]
trasposta(m1)
assert m1 == [ ['a'] ]
m3 = [ ['a','b','c'],
['d','e','f'],
['g','h','i'],
]
trasposta(m3)
assert m3 == [ ['a','d','g'],
['b','e','h'],
['c','f','i'],
]
try: # Controlliamo eventuali dimensioni sbagliate della matrice:
trasposta([ [3,5] ])
raise Exception("AVREI DOVUTO FALLIRE !")
except ValueError:
pass
print("Test passati!")
Nelle slide ho messo gli esempi con la parte di discussione più corposa
Su SoftPython - matrici liste di liste 2 ne trovate parecchi altri esercizi