1
resposta

Valores únicos em Lista de Listas

Estou com a lista abaixo e quero filtrar ela para que cada lista dentro da lista não tenha mais do que 3 elementos repetidos entre elas.

Ex: list[0] = [3, 4, 5, 9, 18, 23, 28] e list [1] = [3, 4, 5, 10, 17, 23, 28] possuem 5 elementos em comum [3, 4, 5, 23, 28], então queria que list contivesse somente um dos dois.

list = [[3, 4, 5, 9, 18, 23, 28],
 [3, 4, 5, 10, 17, 23, 28],
 [3, 4, 5, 10, 21, 23, 28],
 [3, 4, 5, 13, 18, 23, 28],
 [3, 4, 7, 9, 18, 21, 28],
 [3, 4, 7, 10, 17, 21, 28],
 [3, 4, 7, 13, 17, 18, 28],
 [3, 4, 7, 13, 18, 21, 28],
 [3, 4, 9, 10, 17, 23, 28],
 [3, 4, 9, 10, 21, 23, 28],
 [3, 4, 9, 13, 18, 23, 28],
 [3, 4, 10, 13, 17, 23, 28],
 [3, 4, 10, 13, 18, 21, 23],
 [3, 4, 10, 13, 21, 23, 28],
 [3, 5, 9, 10, 17, 18, 28],
 [3, 5, 9, 10, 18, 21, 28],
 [3, 5, 10, 13, 17, 18, 28],
 [3, 5, 10, 13, 18, 21, 28],
 [3, 9, 10, 13, 17, 18, 28],
 [3, 9, 10, 13, 18, 21, 28],
 [4, 5, 7, 9, 18, 23, 28],
 [4, 5, 7, 10, 17, 23, 28],
 [4, 5, 7, 10, 21, 23, 28],
 [4, 5, 7, 13, 18, 23, 28],
 [4, 7, 9, 10, 17, 23, 28],
 [4, 7, 9, 10, 18, 21, 23],
 [4, 7, 9, 10, 21, 23, 28],
 [4, 7, 9, 13, 18, 23, 28],
 [4, 7, 10, 13, 17, 18, 23],
 [4, 7, 10, 13, 17, 23, 28],
 [4, 7, 10, 13, 18, 21, 23],
 [4, 7, 10, 13, 21, 23, 28],
 [5, 7, 9, 10, 17, 18, 28],
 [5, 7, 9, 10, 18, 21, 28],
 [5, 7, 10, 13, 17, 18, 28],
 [5, 7, 10, 13, 18, 21, 28],
 [5, 9, 10, 13, 18, 23, 28],
 [7, 9, 10, 13, 17, 18, 28],
 [7, 9, 10, 13, 18, 21, 28]]
1 resposta

Boas Igor, tudo bem? Espero que sim!

Estava pensando qual seria a melhor forma de ajudar, mas me surgiram algumas dúvidas que são importantes para a implementação, vou enumerá-las abaixo:

  1. Os elementos são considerados repetidos quando eles estão em listas subsequentes ou em quaisquer outras listas? em outras palavras, precisa comparar a lista[0] apenas com a lista[1] ou a a lista[0]com todas as outras?

  2. De que forma deve-se escolher os elementos repetidos que podem ficar na lista? Supondo que eu tenha uma lista com 5 elementos repetidos [5, 9, 10, 13, 18], quais 3 eu escolho para manter na lista?

  3. O número de elementos em cada lista importa? Pois eu poderia achar todos os elementos que são repetidos entre as listas, montar uma lista com eles e então montar as outras apenas com os elementos diferentes, algo como:

    elementos repetidos = {0, 12, 45 ...}
    lista_1 - elementos_repetidos,
    lista_2 - elementos_repetidos,
    ...

    Espero ter ajudado! Bons estudos!