Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Sugestão] Faça como eu fiz: comparando listas de compra

lista_laura = set(input('Digite a lista de compras: ').lower().split(', '))
lista_ana = set(input('Digite a lista de compras: ').lower().split(', '))

comuns = lista_laura.intersection(lista_ana)
diferenca_laura = lista_laura.difference(lista_ana)
diferenca_ana = lista_ana.difference(lista_laura)


print(f'Items de ambas as lista: {', '.join(comuns)}')
print(f'item exclusivos de laura: {', '.join(diferenca_laura)}')
print(f'Item exclusivos de ana: {', '.join(diferenca_ana)}')
1 resposta

Oi, Apollo. Tudo bem com você?

Obrigado por compartilhar sua solução para a atividade de comparar listas de compra utilizando conjuntos em Python. A lógica empregada está de acordo com a proposta do exercício. O uso de set facilita bastante esse tipo de comparação, e a escolha dos métodos intersection() e difference() é adequada para identificar os itens em comum e os exclusivos de cada lista. Além disso, utilizar join() na saída torna a exibição mais amigável do que imprimir diretamente os conjuntos.

Há apenas um ponto no código que merece atenção. Nas instruções print, as aspas da f-string entram em conflito com as aspas utilizadas no join(), o que causa erro de sintaxe. Uma alternativa é utilizar aspas duplas na f-string, por exemplo: print(f"Itens: {', '.join(comuns)}"), ou então manter a f-string com aspas simples e utilizar aspas duplas no separador do join().

Como você adaptaria essa solução caso fosse necessário preservar a ordem em que os itens foram informados pelo usuário?

Parabéns pela resolução da atividade, Apollo. Continue compartilhando suas soluções e dúvidas. O fórum está à disposição para acompanhar seu aprendizado.

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