As listas são mutáveis — podemos alterar seus elementos com l[1] = 100. O Python oferece uma alternativa às listas: a tuple (tuplo), que garante que os elementos individuais não serão alterados. É usada principalmente para agrupar informações muito relacionadas, de modo que, se um elemento é atualizado, toda a informação muda e, portanto, todo o tuplo deve ser atualizado.
Note que a única diferença aqui é que usamos parênteses () em vez de colchetes [] como fazíamos com listas. Podemos até mesmo omitir os parênteses e simplesmente usar box = 20, 30, 50, o que resultaria exatamente no mesmo tuplo.
Os tuplos não são modificáveis. Eles não possuem um método append ou add para adicionar elementos. Se tentarmos alterar a altura da caixa, precisamos mudar todo o tuplo:
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
Existe também uma maneira fácil de desempacotar os elementos do tuplo:
Sabia que pode ler múltiplas entradas numa única linha de código?
name, height = input(), int(input())
Isto é possível graças aos tuplos e ao desempacotamento de valores.
Pedem-lhe para ler os registos de n pacientes e reportar as suas estatísticas. Desta vez, os registos incluem os nomes e o peso de cada paciente. Deve calcular a média de peso de todos os pacientes e, para cada paciente, indicar quanto está acima ou abaixo da média.
A primeira linha da entrada contém um único inteiro n — o número de pacientes. As linhas seguintes contêm o nome do paciente seguido do seu peso na linha seguinte.
O programa deve primeiro imprimir o peso médio e, em seguida, os nomes dos pacientes, seguidos de dois pontos e X above average se o peso estiver acima ou igual à média, e X below average se estiver abaixo.
Entrada
Saída
3
Anna
50
Bob
80
Simon
71
67
Anna: 17 below average
Bob: 13 above average
Simon: 4 above average