Individuare il valore minimo in una sequenze di valori numerici
Soluzione 1
Utilizza la funzione predefinita min()
lista = [2, 9, 1, 1, 9, 3, 5]
m = min(lista) # 1
Soluzione 2
In una lista ordinata il valore minimo occupa il primo posto
...
lista.sort() # [1, 1, 2, 3, 5, 9, 9]
m = lista[0] # 1
Soluzione 3
Assegna un valore temporaneo alla variabile m
...
m = lista[0]
for x in lista:
if(x < m):
m = x
+---+----------+---+
| x | x < m ? | m |
+---+----------+---+
| | | 2 |
0 | 2 | 2 < 2 No | 2 |
1 | 9 | 9 < 2 No | 2 |
2 | 1 | 1 < 2 Sì | 1 | <--
3 | 1 | 1 < 1 No | 1 |
4 | 9 | 9 < 1 No | 1 |
5 | 3 | 3 < 1 No | 1 |
6 | 5 | 5 < 1 No | 1 |
+---+----------+---+
L’elemento alla posizione 0 viene confrontato con se stesso (?)
Soluzione 4
La scansione della lista parte dalla posizione 1
...
m = lista[0]
n = len(lista)
for i in range(1, n):
x = lista[i]
if(x < m):
m = x
+---+---+----------+---+
| i | x | x < m ? | m |
+---+---+----------+---+
| | | | 2 |
| 1 | 9 | 9 < 2 No | 2 |
| 2 | 1 | 1 < 2 Sì | 1 | <--
| 3 | 1 | 1 < 1 No | 1 |
| 4 | 9 | 9 < 1 No | 1 |
| 5 | 3 | 3 < 1 No | 1 |
| 6 | 5 | 5 < 1 No | 1 |
+--+---+----------+---+
Soluzione 5
Si semplifica il codice se si conosce il valore MASSIMO dell’intervallo di valori ammessi nella lista
...
MASSIMO = 100
m = MASSIMO+1
for x in lista:
if(x < m):
m = x
+---+------------+-----+
| x | x < m ? | m |
+---+------------+-----+
| | | 101 |
0 | 2 | 2 < 101 Sì | 2 | <--
1 | 9 | 9 < 2 No | 2 |
2 | 1 | 1 < 2 Sì | 1 | <--
3 | 1 | 1 < 1 No | 1 |
4 | 9 | 9 < 1 No | 1 |
5 | 3 | 3 < 1 No | 1 |
6 | 5 | 5 < 1 No | 1 |
+---+------------+-----+
Soluzione 6
Da Python 3.5, math.inf (infinito) è una costante simbolica per il numero più grande.
Prima di iniziare i confronti la assegniamo al valore minimo e al primo confronto verrà sostituita!
...
m = math.inf
for x in lista:
if(x < m):
m = x
+---+------------+-----+
| x | x < m ? | m |
+---+------------+-----+
| | | inf |
0 | 2 | 2 < inf Sì | 2 | <--
1 | 9 | 9 < 2 No | 2 |
2 | 1 | 1 < 2 Sì | 1 | <--
3 | 1 | 1 < 1 No | 1 |
4 | 9 | 9 < 1 No | 1 |
5 | 3 | 3 < 1 No | 1 |
6 | 5 | 5 < 1 No | 1 |
+---+------------+-----+
Massimo
Individuare il valore MASSIMO in una sequenze di valori?
Utilizza la funzione predefinita max()
M = max(lista)
In una lista ordinata il valore massimo occupa l’ultimo posto
lista.sort()
M = lista[len(lista)-1]
oppure
lista.sort()
M = lista[-1]
Se la lista è ordinata in ordine decrescente…
lista.sort(reverse=True)
M = lista[0]
Continua tu …