Claro! Você pode usar o código abaixo para encontrar o maior, o menor e a média dos elementos de uma lista em Python:
def analisar_lista(numeros):
if len(numeros) == 0:
return {"maior": None, "menor": None, "média": None}
maior = max(numeros)
menor = min(numeros)
media = sum(numeros) / len(numeros)
return {"maior": maior, "menor": menor, "média": media}
# Exemplo de utilização
lista = [10, 20, 30, 40, 50]
resultado = analisar_lista(lista)
print(f"Maior: {resultado['maior']}")
print(f"Menor: {resultado['menor']}")
print(f"Média: {resultado['média']}")
Este código define uma função analisar_lista
que calcula o maior, o menor e a média dos valores em uma lista. A função também trata o caso de uma lista vazia, retornando None
para cada valor nesse caso. Você pode substituir a lista de exemplo por qualquer lista de números que deseja analisar.
O código que você forneceu está muito bem estruturado! Ele realiza a tarefa de encontrar o maior, o menor e a média dos elementos de uma lista de números de maneira eficiente e clara.
Aqui está um pequeno resumo de como o código funciona:
### Descrição do Funcionamento
1. **Função `analisar_lista(numeros)`**:
- Verifica se a lista `numeros` está vazia. Se a lista estiver vazia, a função retorna um dicionário com os valores `None` para "maior", "menor" e "média".
- Caso a lista não seja vazia, a função:
- Calcula o **maior número** da lista com a função `max()`.
- Calcula o **menor número** com a função `min()`.
- Calcula a **média** somando todos os elementos da lista e dividindo pela quantidade de elementos, utilizando `sum(numeros) / len(numeros)`.
2. **Exemplo de uso**:
- Você cria uma lista com os números `[10, 20, 30, 40, 50]` e passa essa lista como argumento para a função.
- O resultado é retornado em um dicionário, que é então impresso para mostrar o maior, o menor e a média dos números.
### Saída Esperada
Quando você executa o programa com a lista de exemplo, a saída seria:
```
Maior: 50
Menor: 10
Média: 30.0
```
### Caso de Lista Vazia
A função também lida bem com o caso de uma lista vazia. Por exemplo:
```python
lista_vazia = []
resultado_vazio = analisar_lista(lista_vazia)
print(resultado_vazio)
```
A saída será:
```
{'maior': None, 'menor': None, 'média': None}
```
### Possíveis Melhorias
- **Tratamento de entrada**: Adicionar um tratamento de erro para garantir que a entrada seja uma lista de números (inteiros ou flutuantes).
- **Performance**: Caso a lista seja muito grande, o código ainda será eficiente para encontrar o maior, o menor e a média, mas você poderia otimizar um pouco a parte da média, calculando a soma enquanto percorre a lista.
### Código otimizado para soma durante a iteração:
Se a lista for muito grande e você quiser uma abordagem que calcule a soma enquanto determina o maior e menor número, você pode fazer algo assim:
```python
def analisar_lista_otimizado(numeros):
if len(numeros) == 0:
return {"maior": None, "menor": None, "média": None}
maior = menor = numeros[0]
soma = 0
for numero in numeros:
if numero > maior:
maior = numero
if numero < menor:
menor = numero
soma += numero
media = soma / len(numeros)
return {"maior": maior, "menor": menor, "média": media}
# Exemplo de utilização
lista = [10, 20, 30, 40, 50]
resultado = analisar_lista_otimizado(lista)
print(f"Maior: {resultado['maior']}")
print(f"Menor: {resultado['menor']}")
print(f"Média: {resultado['média']}")
```
Esse código realiza a análise em uma única passagem pela lista, o que pode ser um pouco mais eficiente para listas muito grandes, especialmente se o cálculo de média for uma preocupação de desempenho.
Se precisar de mais alguma ajuda ou ajustes no código, estou à disposição!