Списки являются изменяемыми — мы можем изменять их элементы с помощью l[1] = 100. Python предоставляет альтернативу спискам — tuple (кортеж), который гарантирует, что отдельные элементы не будут изменены. Он в основном используется для тесно связанных частей информации, таких, что при обновлении одного элемента изменяется вся информация, и поэтому весь кортеж следует обновить.
Обратите внимание, что единственная разница здесь в том, что мы используем круглые скобки (), вместо квадратных скобок [], как мы делали для списков. Мы даже можем опустить скобки и просто написать box = 20, 30, 50, что приведет к точно такому же кортежу.
Кортежи неизменяемы. У них нет методов append или add для добавления элементов. Если мы попробуем изменить высоту box, нам нужно изменить весь кортеж:
box = (20, 30, 50)
box[0] = 10 # TypeError: объект 'tuple' не поддерживает присваивание элементов
box = (10, 30, 50) # OK
box = 10, 30, 50 # OK
Также существует простой способ распаковки элементов кортежа:
Знаете ли вы, что можно считывать несколько вводов в одной строке кода?
name, height = input(), int(input())
Это возможно благодаря кортежам и распаковке значений.
Вам нужно считать данные о n пациентах и сообщить их статистику. На этот раз записи включают их имена и вес каждого пациента. Вам нужно вывести средний вес всех пациентов, и для каждого пациента указать, насколько их вес выше или ниже среднего.
Первая строка ввода содержит одно целое число n — количество пациентов. Следующие строки содержат имя пациента, а затем на следующей строке его вес.
Программа должна сначала вывести средний вес, а затем имена пациентов, за которыми следует двоеточие и X above average, если вес выше или равен среднему, и X below average, если ниже.
Ввод
Вывод
3
Anna
50
Bob
80
Simon
71
67
Anna: 17 below average
Bob: 13 above average
Simon: 4 above average