Les listes sont mutables : nous pouvons modifier leurs éléments avec l[1] = 100. Python propose une alternative aux listes : le tuple, qui garantit que les éléments individuels ne changeront pas. Il est principalement utilisé pour des informations étroitement liées, de sorte que lorsque qu'un élément est mis à jour, l'ensemble de l'information est modifiée et donc tout le tuple doit être mis à jour.
Notez que la seule différence ici est que nous utilisons des parenthèses () au lieu des crochets [] que nous utilisions pour les listes. Nous pourrions même omettre les parenthèses et simplement utiliser box = 20, 30, 50, ce qui donnerait exactement le même tuple.
Les tuples ne sont pas modifiables. Ils n'ont pas de méthode append ou add pour ajouter des éléments. Si nous essayons de changer la hauteur de la boîte, nous devons modifier tout le tuple :
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
Il existe également un moyen facile de décompacter les éléments du tuple :
Saviez-vous que vous pouviez lire plusieurs entrées avec une seule ligne de code ?
name, height = input(), int(input())
C'est possible grâce aux tuples et au décompactage des valeurs.
On vous demande de lire les enregistrements pour n patients et de rapporter leurs statistiques. Cette fois, les enregistrements incluent leurs noms et le poids de chaque patient. Vous devez calculer la moyenne pour tous les patients, et pour chaque patient, indiquer de combien ils sont au-dessus ou en dessous de la moyenne.
La première ligne de l'entrée contient un seul entier n - le nombre de patients. Les lignes suivantes contiennent le nom du patient suivi de son poids sur la ligne suivante.
Le programme doit d'abord afficher le poids moyen, puis les noms des patients, suivis de deux-points, et X above average si le poids est supérieur ou égal à la moyenne, et X below average s'il est inférieur.
Entrée
Sortie
3
Anna
50
Bob
80
Simon
71
67
Anna: 17 below average
Bob: 13 above average
Simon: 4 above average