У меня есть список со списками:
cliques = [ [1,9,5], [3,5,4], [10,7,0], [2,7,5], [6,11], [6,5,4], [3,1], [11, 0]]
Я выбираю один элемент из списка случайным образом:
rand_clique = numpy.random.choice(cliques)
Например cliques[2] = [10,7,0]
И я хочу создать новый список с уникальные значения внутри Cliques
элементов. В результате я получаю список:
unique_cliques = [[10,7,0], [1,9,5], [6,11]]
Я написал код, но я думаю, что его можно оптимизировать лучше, как я могу это сделать?
import numpy as np
unique_cliques = []
not_unique_cliques = []
cliques = [[1, 9, 5], [3, 5, 4], [10, 7, 0], [2, 7, 5], [6, 11], [6, 5, 4], [3, 1], [11, 0]]
rand_clique = np.random.choice(cliques)
unique_cliques.append(rand_clique)
for elem in rand_clique:
not_unique_cliques.append(elem)
for clique in cliques:
temp = []
count = 0
for elem in clique:
if elem not in not_unique_cliques:
count += 1
temp.append(elem)
if count == len(clique):
unique_cliques.append(clique)
not_unique_cliques = not_unique_cliques + temp
print(rand_clique)
print(unique_cliques)
Было бы Было бы хорошо, если бы программа могла принимать элементы не по порядку, но каждый раз случайный элемент, удовлетворяющий условию выше.