Listen sind veränderbar – wir können ihre Elemente mit l[1] = 100 ändern. Python bietet eine Alternative zu Listen – das tuple (Tupel), das garantiert, dass die einzelnen Elemente nicht geändert werden können. Es wird hauptsächlich für sehr zusammenhängende Informationen verwendet, so dass, wenn ein Element aktualisiert wird, die ganze Information geändert ist und daher das gesamte Tupel aktualisiert werden sollte.
Beachten Sie, dass der einzige Unterschied hier ist, dass wir anstelle von eckigen Klammern [] wie bei Listen runde Klammern () verwenden. Wir könnten die Klammern sogar weglassen und einfach box = 20, 30, 50 schreiben, was zu genau demselben Tupel führen würde.
Tuples sind nicht veränderbar. Sie haben keine append- oder add-Methode, um Elemente hinzuzufügen. Wenn wir versuchen, die Höhe der Box zu ändern, müssen wir das gesamte Tupel ändern:
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
Es gibt auch eine einfache Möglichkeit, die Elemente des Tupels zu entpacken:
Wussten Sie, dass Sie mehrere Eingaben mit einer einzigen Zeile Code einlesen können?
name, height = input(), int(input())
Dies ist dank Tupeln und dem Entpacken von Werten möglich.
Sie sollen die Datensätze für n Patienten einlesen und ihre Statistiken ausgeben. Dieses Mal enthalten die Datensätze ihre Namen und das Gewicht jedes Patienten. Sie sollen den Durchschnitt aller Patienten berechnen und für jeden Patienten angeben, wie viel sie über oder unter dem Durchschnitt liegen.
Die erste Zeile der Eingabe enthält eine einzelne ganze Zahl n – die Anzahl der Patienten. Die nächsten Zeilen enthalten den Namen des Patienten, gefolgt von seinem Gewicht in der nächsten Zeile.
Das Programm sollte zuerst das Durchschnittsgewicht ausgeben und dann die Namen der Patienten, gefolgt von einem Doppelpunkt, und X above average, wenn das Gewicht über oder gleich dem Durchschnitt ist, und X below average, wenn es darunter liegt.
Eingabe
Ausgabe
3
Anna
50
Bob
80
Simon
71
67
Anna: 17 below average
Bob: 13 above average
Simon: 4 above average