Modificare i dati di un elenco
Potrebbe essere necessario usare parti diverse di un elenco. Si supponga, ad esempio, di avere un elenco con le quantità di precipitazioni per i vari mesi. Per analizzare correttamente questo tipo di dati, potrebbe essere necessario cercare le precipitazioni in un periodo di tre mesi. Oppure si potrebbe voler ordinare l'elenco dalla quantità maggiore di precipitazioni a quella minore.
Python offre un valido supporto per l'uso dei dati contenuti negli elenchi. Questo supporto include il sezionamento dei dati (esame solo di una parte dell'elenco) e l'ordinamento.
Sezionare gli elenchi
È possibile ottenere una parte di un elenco usando una sezione. Una sezione usa le parentesi quadre, ma invece di un singolo elemento, include gli indici iniziale e finale. Quando si usa una sezione, si crea un nuovo elenco che inizia dall'indice iniziale e termina prima dell'indice finale (non incluso).
L'elenco dei pianeti ha otto elementi. La Terra è il terzo dell'elenco. Per ottenere i pianeti prima della Terra, usare una sezione per ottenere gli elementi che iniziano da 0 e terminano a 2:
planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
planets_before_earth = planets[0:2]
print(planets_before_earth)
Output: ['Mercury', 'Venus']
Si noti che la Terra non è inclusa nell'elenco. Il motivo è che l'indice termina prima dell'indice finale.
Per ottenere tutti i pianeti dopo la Terra, iniziare dal terzo elemento fino all'ottavo:
planets_after_earth = planets[3:8]
print(planets_after_earth)
Output: ['Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
In questo esempio viene visualizzato Nettuno. Il motivo è che l'indice di Nettuno è 7
, perché l'indicizzazione inizia da 0
. Poiché l'indice finale era 8
, include l'ultimo valore. Se non si inserisce l'indice finale nella sezione, Python presuppone che si voglia andare alla fine dell'elenco:
planets_after_earth = planets[3:]
print(planets_after_earth)
Output: ['Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
Importante
Una sezione crea un nuovo elenco. Non modifica l'elenco corrente.
Unire gli elenchi
Si è visto come è possibile usare le sezioni per suddividere gli elenchi, ma come è possibile unirli di nuovo?
Per unire due elenchi, usare l'altro operatore (+
) con due elenchi per restituire un nuovo elenco.
Si conoscono 79 lune di Giove. Le quattro più grandi sono Io, Europa, Ganimede e Callisto. Queste lune sono chiamate lune galileiane, perché Galileo Galilei le scoprì con il suo telescopio nel 1610. Più vicino a Giove del gruppo galileiano è il gruppo di Amalthea. È composto dalle lune Metis, Adrastea, Amalthea e Thebe.
Creare due elenchi. Popolare il primo elenco con le quattro lune di Amalthea e il secondo elenco con le quattro lune galileiane. Unirli insieme con +
per creare un nuovo elenco:
amalthea_group = ["Metis", "Adrastea", "Amalthea", "Thebe"]
galilean_moons = ["Io", "Europa", "Ganymede", "Callisto"]
regular_satellite_moons = amalthea_group + galilean_moons
print("The regular satellite moons of Jupiter are", regular_satellite_moons)
Output: The regular satellite moons of Jupiter are ['Metis', 'Adrastea', 'Amalthea', 'Thebe', 'Io', 'Europa', 'Ganymede', 'Callisto']
Importante
L'unione di elenchi crea un nuovo elenco. Non modifica l'elenco corrente.
Ordinare elenchi
Per ordinare un elenco, usare il metodo .sort()
nell'elenco. Python ordina un elenco di stringhe in ordine alfabetico e un elenco di numeri in ordine numerico:
amalthea_group = ["Metis", "Adrastea", "Amalthea", "Thebe"]
galilean_moons = ["Io", "Europa", "Ganymede", "Callisto"]
regular_satellite_moons = amalthea_group + galilean_moons
regular_satellite_moons.sort()
print("The regular satellite moons of Jupiter are", regular_satellite_moons)
Output: The regular satellite moons of Jupiter are ['Adrastea', 'Amalthea', 'Callisto', 'Europa', 'Ganymede', 'Io', 'Metis', 'Thebe']
Per ordinare un elenco in ordine inverso, chiamare .sort(reverse=True)
nell'elenco:
amalthea_group = ["Metis", "Adrastea", "Amalthea", "Thebe"]
galilean_moons = ["Io", "Europa", "Ganymede", "Callisto"]
regular_satellite_moons = amalthea_group + galilean_moons
regular_satellite_moons.sort(reverse=True)
print("The regular satellite moons of Jupiter are", regular_satellite_moons)
Output: The regular satellite moons of Jupiter are ['Thebe', 'Metis', 'Io', 'Ganymede', 'Europa', 'Callisto', 'Amalthea', 'Adrastea']
Importante
L'uso di sort
modifica l'elenco corrente.