2
respostas

[Dúvida] QUESTÃO 14 ESTRUTURA DE DADOS

# Especificamos os dados para um dicionário 
dados = {'Área Norte': [2819, 7236], 'Área Leste': [1440, 9492], 'Área Sul': [5969, 7496], 'Área Oeste': [14446, 49688], 'Área Centro': [22558, 45148]}

# Inicializamos as variáveis 
soma_media = 0  # Irá somar todas as médias
maior_diversidade = ''  # Irá armazenar a área com maior diversidade
maior_soma = 0  # Irá armazenar a maior soma de espécies

# Percorremos os valores de chaves e elementos do dicionário
for area, especies in dados.items():
    # Fazemos a soma do número de espécies em cada área com a função sum
    soma_especies = sum(especies)
    
    # Calculamos a média dividindo a soma das espécies pela quantidade de espécies
    media = soma_especies / len(especies)
    
    # Imprimimos
    print(f'A {area} tem a média de {media} espécies')

    # Verificamos se a soma das espécies é maior que o valor armazenado de maior_soma
    # Cada vez que a soma_especies superar o valor de maior_soma,
    # a variável maior_soma vai ser igual à soma_especies, atribuindo um novo valor
    # De forma similar, maior_diversidade também é substituída
    if soma_especies > maior_soma:
        maior_soma = soma_especies
        maior_diversidade = area

    # Somamos as médias
    soma_media += media

# A média total será dada pela soma_media dividida pela quantidade de áreas
media_total = soma_media / len(dados)
print(f'Média geral de espécies: {media_total}')
print(f'Área com a maior diversidade biológica: {maior_diversidade}')

Minha dúvida gira em torno da média. Quando li o enunciado da questão, a primeira coisa que me fez sentido - e continua fazendo - era a ideia de somar todas as espécies de animais e plantas e dividir pela quantidade de áreas. Dessa forma, encontraria a média geral de espécies por áreas. No entanto, a resolução do exercício segue um caminho completamente diferente: primeiro, na resolução, é calculada a média separadamente, somando a quantidade das duas espécies e dividindo pelo número de espécies (2). Isso, por si só, não faz sentido, já que o resultado é um valor muito discrepante da soma das duas espécies. Por exemplo, na 'Área Norte' [2819, 7236], a soma das espécies é de 10.055, enquanto a média nessa área é de 5027,5? No final, ainda soma todas essas médias e divide pela quantidade de elementos no dicionário. Minha dúvida é: qual a lógica por trás dessa conta? A resposta não seria somar todas as espécies de todas as áreas e, por fim, dividir pela quantidade de áreas? Não seria mais coeso? Obrigado!

2 respostas

Oi, Pablo!

Essa conta é feita nesse passo a passo, pois, assim, é possível saber qual é a média de espécies em cada área. Na saída, teremos respostas para cada região, veja:

A Área Norte tem a média de 5027.5 espécies
A Área Leste tem a média de 5466.0 espécies
A Área Sul tem a média de 6732.5 espécies
A Área Oeste tem a média de 32067.0 espécies
A Área Centro tem a média de 33853.0 espécies

Com essas informações, se torna possível descobrir qual área tem a maior biodiversidade.

O último cálculo é uma média geral - somando todas as espécies e dividindo pela quantidade de áreas - como você sugeriu. Entretanto, essa não é o objetivo principal do exercício.

Espero que tenha ficado mais claro, Pablo! Fico à disposição.

Abraços.

Bom dia! Minha resposta ao desafio.

print('Calcular a média de espécies por área e identificar a área com a maior diversidade biológica. ')

especies ={'Área Norte': [2819, 7236],
 'Área Leste': [1440, 9492],
 'Área Sul': [5969, 7496],
 'Área Oeste': [14446, 49688],
 'Área Centro': [22558, 45148]}

media = 0
soma = 0


for chave, valor in especies.items():
  soma = sum(especies[chave])
  especies[chave] = soma/len(valor)

maior = 0
for chave, valor in especies.items():
  if valor > maior:
    resultado = chave


print('#######################################################')
print(f'A área com maior diversidade biológica é a {resultado}.')