Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Criar uma lista com os itens repetidos

Durante a aula vimos o uso da função set() para criar uma lista excluindo os itens duplicados.

A minha dúvida é como criar uma lista que contenha os itens duplicados de uma outra lista, por exemplo:

dados = ['laranja', 'banana', 'maçã', 'morango', 'uva', 'pera', 'maçã', 'limão', 'banana', 'laranja'] A partir da lista acima seja criada uma lista com os itens repetidos:

['laranja', 'banana', 'maçã']

Como ficaria o código?

1 resposta
solução!

Olá Leonardo, tudo bem? Espero que sim!

Sem utilizar nenhuma biblioteca do Python ,você pode fazer da seguinte maneira:

dados = ['laranja', 'banana', 'maçã', 'morango', 'uva', 'pera', 'maçã', 'limão', 'banana', 'laranja']
valores = []
repetidos = set()

for dado in dados:
    if dado not in valores:
        valores.append(dado)
    else:
        repetidos.add(dado)
print(f'Valores = {valores}')
print(f'Repetidos = {repetidos}')

A ideia desse código é percorrer a lista dos dados e se o dado ainda não apareceu inserir na lista valores, que no fim serão os valores únicos dos seus dados. Caso o item já tenha sido inserido em valores, ele será repetido. Basta adicionar a um set() para armazenar ele de maneira a não repetir ele também das próximas vezes.

O método add() dos conjuntos só adiciona o valor caso ainda não esteja no set(), já que o set é uma estrutura de dados que não aceita valores repetidos.

Mais a frente na formação que está fazendo, você vai aprender a utilizar a biblioteca pandas e verá maneiras mais interessantes de fazer isso. Dá pra usar uma função value_counts() que vai contar a quantidade de vezes que cada um aparece. Daí você pode selecionar somente aqueles que tem contagem maior ou igual a 2 por exemplo. Ainda pode utilizar um método chamado duplicated() que devolve valores booleanos para os registros que forem duplicados.

Bons estudos!