tuple

Le liste sono mutabili: possiamo cambiare i loro elementi con l[1] = 100. Python fornisce un'alternativa alle liste: le tuple, che garantiscono che gli elementi individuali non vengano modificati. Sono utilizzate principalmente per informazioni strettamente correlate, tali che quando un elemento viene aggiornato, l'intera informazione cambia e quindi l'intera tupla dovrebbe essere aggiornata.

box = (20, 30, 50)
print('height:', box[0])
print('width:', box[1])
print('depth:', box[2])

Nota che l'unica differenza qui è che usiamo le parentesi tonde () invece delle parentesi quadre [] come facevamo per le liste. Potremmo anche omettere le parentesi e semplicemente usare box = 20, 30, 50, che risulterebbe esattamente nella stessa tupla.

Le tuple non sono modificabili. Non hanno un metodo append o add per aggiungere elementi. Se proviamo a cambiare l'altezza della scatola, dobbiamo cambiare l'intera tupla:

box = (20, 30, 50)
box[0] = 10         # TypeError: 'tuple' object does not support item assignment
box = (10, 30, 50)  # OK
box = 10, 30, 50    # OK

C'è anche un modo semplice per spacchettare gli elementi della tupla:

box = 20, 30, 50
height, width, depth = box
print('height:', height)
print('width:', width)
print('depth:', depth)
height, width, depth = 20, 30, 50
print('height:', height)
print('width:', width)
print('depth:', depth)

Sfida

Sapevi che puoi leggere più input con una sola riga di codice?

name, height = input(), int(input())

Questo è possibile grazie alle tuple e allo spacchettamento dei valori.

Ti viene chiesto di leggere i record per n pazienti e riportare le loro statistiche. Questa volta i record includono i loro nomi e il peso di ogni paziente. Ti viene chiesto di calcolare la media dei pesi di tutti i pazienti e, per ciascun paziente, quanto è sopra o sotto la media.

La prima riga dell'input contiene un singolo intero n - il numero di pazienti. Le linee successive contengono il nome del paziente seguito dal suo peso nella riga successiva.

Il programma dovrebbe prima stampare il peso medio, e poi i nomi dei pazienti, seguiti da due punti, e X above average se il peso è sopra o uguale alla media, e X below average se è sotto.

Input

Output

3
Anna
50
Bob
80
Simon
71

67
Anna: 17 below average
Bob: 13 above average
Simon: 4 above average

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue