tuple (кортеж)

Списки являются изменяемыми — мы можем изменять их элементы с помощью l[1] = 100. Python предоставляет альтернативу спискам — tuple (кортеж), который гарантирует, что отдельные элементы не будут изменены. Он в основном используется для тесно связанных частей информации, таких, что при обновлении одного элемента изменяется вся информация, и поэтому весь кортеж следует обновить.
box = (20, 30, 50)
print('height:', box[0])
print('width:', box[1])
print('depth:', box[2])
Обратите внимание, что единственная разница здесь в том, что мы используем круглые скобки (), вместо квадратных скобок [], как мы делали для списков. Мы даже можем опустить скобки и просто написать 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
Также существует простой способ распаковки элементов кортежа:
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)

Задача

Знаете ли вы, что можно считывать несколько вводов в одной строке кода?
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
 

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