Bom dia Felipe! Tudo bem com você?
Não está errado, mas, para atender ao requisito pedido de lançar um IndexError
quando as listas tiverem tamanhos diferentes, você pode ajustar a lógica da sua função adicionando uma verificação para tamanhos diferentes, por exemplo:
if len(lista_1) != len(lista_2):
raise IndexError('A quantidade de elementos em cada lista é diferente.')
Essa verificação é importante porque garante que o código só prossegue quando as listas têm o mesmo comprimento. Se as listas tiverem tamanhos diferentes, um IndexError
é lançado com uma mensagem descritiva, o que facilita a identificação e correção do problema para quem está usando nosso programa. Sem essas mensagens, pode parecer que o código está funcionando corretamente, mesmo quando há problemas. Com uma mensagem de erro adequada, o usuário tem uma orientação mais precisa sobre o que precisa ser corrigido.
Código completo corrigido:
lista1 = [4, 6, 7, 9, 10, 4]
lista2 = [-4, 6, 8, 7, 9]
def agrupamento(lista_1, lista_2):
try:
if len(lista_1) != len(lista_2):
raise IndexError('A quantidade de elementos em cada lista é diferente.')
nova_tupla = [numero[0] + numero[1] for numero in zip(lista_1, lista_2)]
tupla_final = list(zip( lista_1, lista_2, nova_tupla))
return tupla_final
except TypeError:
print('Um ou mais valores das listas passadas não estão formatados corretamente. Verifique os valores inseridos e tente novamente.')
except IndexError as e:
print(type(e), f'Erro: {e}')
except Exception as e:
print(f'Ocorreu um erro inesperado: {e}')
agrupamento(lista1, lista2)
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado