我有一份清单,清单如下:
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)
如果程序可以不按顺序取元素,但每次取一个满足上述条件的随机元素,那就太好了
我尽了最大努力:
您可以通过过滤看到的值,从无序版本的派系列表中构建列表:
这不仅会随机化第一个子列表,还会随机化后续子列表
使用集合应该提高效率:
顺便说一句,请注意,结果因
random.choice
选择的集团而异相关问题 更多 >
编程相关推荐