1
resposta

[Sugestão] Como eu fiz:

# solicitar lista, padronizar palavras em minúscula e criar listas de palavras
lista_inicial_laura = input("Insira a lista de compras da Laura: ").lower().split(',')
lista_inicial_ana = input("Insira a lista de compras da Ana: ").lower().split(',')

#  limpar espaços das palavras na lista:
lista_limpa_laura = [
    item.strip()
    for item in lista_inicial_laura
]

lista_limpa_ana = [
    item.strip()
    for item in lista_inicial_ana
]

# criar sets para consulta, não saída, pois perde a ordem
set_laura = set(lista_limpa_laura)
set_ana = set(lista_limpa_ana)

# percorra a lista da Laura e mantenha só o que também está na Ana

comum = []
for item in lista_limpa_laura:
    if item in set_ana:
        comum.append(item)

print("Items em ambas as listas:",", ".join(comum))

exclusivo_laura = []
for item in lista_limpa_laura:
    if item not in set_ana:
        exclusivo_laura.append(item)

print("Items exclusivos de Laura:",", ".join(exclusivo_laura))

exclusivo_ana = []
for item in lista_limpa_ana:
    if item not in set_laura:
        exclusivo_ana.append(item)

print("Items exclusivos de Ana:",", ".join(exclusivo_ana))
1 resposta

Olá, Kelly! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de listas para organizar os itens de compras, utilizou muito bem o set para facilitar a comparação entre os elementos e ainda compreendeu a importância de limpar os espaços e padronizar as palavras para evitar inconsistências.

Uma dica interessante para o futuro é simplificar o código usando compreensões de listas diretamente, o que deixa o programa mais enxuto e legível. Assim:

lista_inicial_laura = input("Insira a lista de compras da Laura: ").lower().split(',')
lista_inicial_ana = input("Insira a lista de compras da Ana: ").lower().split(',')

lista_limpa_laura = [item.strip() for item in lista_inicial_laura]
lista_limpa_ana = [item.strip() for item in lista_inicial_ana]

set_laura = set(lista_limpa_laura)
set_ana = set(lista_limpa_ana)

comum = [item for item in lista_limpa_laura if item in set_ana]
exclusivo_laura = [item for item in lista_limpa_laura if item not in set_ana]
exclusivo_ana = [item for item in lista_limpa_ana if item not in set_laura]

print("Itens em ambas as listas:", ", ".join(comum))
print("Itens exclusivos de Laura:", ", ".join(exclusivo_laura))
print("Itens exclusivos de Ana:", ", ".join(exclusivo_ana))

Isso faz com que o programa fique mais conciso e mantenha a mesma lógica de forma elegante.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!