[Python] Problema com programa que percorra duas listas e gere uma terceira sem elementos...

Discussão em 'Python' iniciado por Stack, Março 31, 2025.

  1. Stack

    Stack Membro Participativo

    Por um pouco mais de uma semana eu estive tentando resolver o seguinte exercício: "Faça um programa que percorra duas listas e gere uma terceira sem elementos repetidos." O enunciado em questão faz parte do Exercício 6.3 do livro "Introdução à programação com Python" do Professor Nilo Menezes.

    A ideia do problema apresentado é que o programador crie um algoritmo que leia duas listas diferentes e que uma terceira lista seja produzida com base nessas duas, ignorando os elementos repetidos e/ou já incluídos na nova lista. Como se trata de um exercício que visa a prática de lógica da programação utilizando os novos conceitos aprendidos, ele deve ser resolvido sem a utilização de funções.

    Devido a esse importante detalhe, a resolução apresentada aqui não se aplica de forma alguma, tampouco o propósito do exercício é o mesmo do link de redirecionamento.

    O próprio Prof. Nilo já postou a resolução desse mesmo exercício em seu blog, mas com uma lógica significativamente diferente do que venho tentado: optei por adicionar os elementos da lista 1 e da lista 2 à lista 3 de maneira independente, verificando se há elementos repetidos de cada lista na lista 3 e, em caso negativo, realizando a adição. Devido a esse fator, meu código se encontra incompleto, tendo sido escrito até a primeira lista, já que o problema se encontra em seu respectivo laço.

    Não consigo dizer o que há de errado: após inserir os valores nas variáveis, o programa simplesmente para de ser executado, sem ser encerrado pelo interpretador. Até pensei que poderia ser um problema de sintaxe, mas nesse caso pensei que alguma mensagem seria exibida e o programa seria encerrado corretamente, certo?

    Como comentei em um parágrafo acima, creio que o problema esteja no segundo laço aninhado.

    Segue abaixo o meu algoritmo:

    # Faça um programa que percorra duas listas e gere uma terceira sem elementos repetidos.

    lista_1 = []
    lista_2 = []
    op = ''
    while op != 0:
    op = int(input(f'Digite um termo da lista 1 (0 para parar): '))
    if op != 0:
    lista_1.append(op)
    else:
    op = ''
    while op != 0:
    op = int(input(f'Digite um termo da lista 2 (0 para parar): '))
    if op != 0:
    lista_2.append(op)

    indice_lista_1 = 0
    indice_lista_2 = 0

    lista_3 = []
    indice_lista_3 = 0

    while indice_lista_1 < len(lista_1):

    while indice_lista_3 < len(lista_1):
    if len(lista_3) == 0:
    lista_3.append(lista_1[indice_lista_1]) # len(lista_3) torna-se igual a 1
    else:
    if lista_1[indice_lista_1] != lista_3[indice_lista_3]:
    lista_3.append(lista_1[indice_lista_1])
    indice_lista_3 = indice_lista_3 + 1

    indice_lista_1 = indice_lista_1 + 1

    print(f'A lista 1 é igual a {lista_1}')
    print(f'A lista 3 é igual a {lista_3}')


    lista_3 = []


    Também possuo outro rascunho de uma tentativa minha menos atual. Não inclui aqui porque não achei relevante, mas por favor me sinalize caso achar necessário.

    Continue reading...

Compartilhe esta Página