Olá, Pedro! Como vai?
Antes de tudo, é preciso entender o que o primeiro for
está percorrendo, no caso estamos iterando sobre dados.items()
.
Mas Daniel, eu não poderia iterar sobre dados
? Preciso mesmo iterar sobre dados.items()
? A questão é que como os dados
são um dicionário, ao usar dados.items()
, estamos retornando um objeto no formato de tuplas. O que vai facilitar muito o acesso aos pares de chave-valor.
E repare que, se exibirmos o resultado de dados.items()
, temos o seguinte retorno:
dict_items([('Setor A', [22, 26, 30, 30, 35, 38, 40, 56, 57, 65]),
('Setor B', [22, 24, 26, 33, 41, 49, 50, 54, 60, 64]),
('Setor C', [23, 26, 26, 29, 34, 35, 36, 41, 52, 56]),
('Setor D', [19, 20, 25, 27, 34, 39, 42, 44, 50, 65])])
Ou seja, em cada tupla temos uma string com o setor (chave) e um array com as idades (valor).
Sabendo disso, podemos então entender o porquê do seguinte trecho:
for setor, idades in dados.items():
- Primeiro eu uso um
for
para percorrer cada tupla dentro do objeto dados.items()
- Depois crio uma variável
setor
que vai receber a string de cada tupla ('Setor A'
, 'Setor B'
, ...) - Por fim crio uma variável
idades
que vai receber o array de cada tupla ([22, 26, 30, 30, 35, 38, 40, 56, 57, 65]
, [22, 24, 26, 33, 41, 49, 50, 54, 60, 64]
, ...)
Já que a variável idades está sendo um array a cada iteração, por exemplo:
- [22, 26, 30, 30, 35, 38, 40, 56, 57, 65]
Eu posso analisar cada idade dentro desse array usando mais um laço for
. Dessa maneira:
for idade in idades:
if idade > media_geral:
lista_pessoas_acima_media.append(idade)
E dentro desse loop estamos analisando se:
- 22 > media_geral
- 26 > media_geral
- 30 > media_geral
- ...
Caso positivo, essa idade é adicionada em uma lista chamada lista_pessoas_acima_media
.
Legal, não é? Sempre que precisar entender um código, busque entendê-lo linha por linha. Repare que, se eu não entendo a primeira linha, não há como entender o que está rolando nas linhas seguintes.
Espero ter te ajudado, Pedro! E fico à disposição se precisar.
Abraço e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado