2015-12-21 77 views
1

我从源列表创建一个随机列表,问题是它有一个项目重复两次。我想在我的名单中没有重复。这是我的代码和输出。从列表中的随机列表没有重复

COLOR_INDEX = ['FF000000', 'FFFF0000', 'FF00FF00', 'FF0000FF', 
       'FFFFFF00', 'FFFF00FF', 'FF00FFFF', 'FF800000', 'FF008000', 'FF000080', 
       'FF808000', 'FF800080', 'FF008080', 'FFC0C0C0', 'FF808080', 'FF9999FF', 
       'FF993366', 'FFCCFFFF', 'FF660066', 'FFFF8080', 'FF0066CC', 
       'FFCCCCFF', 'FF000080', 'FFFF00FF', 'FFFFFF00', 'FF00FFFF', 'FF800080', 
       'FF800000', 'FF008080', 'FF0000FF', 'FF00CCFF', 'FFCCFFFF', 'FFCCFFCC', 
       'FFFFFF99', 'FF99CCFF', 'FFFF99CC', 'FFCC99FF', 'FFFFCC99', 'FF3366FF', 
       'FF33CCCC', 'FF99CC00', 'FFFFCC00', 'FFFF9900', 'FFFF6600', 'FF666699', 
       'FF969696', 'FF003366', 'FF339966', 'FF003300', 'FF333300', 'FF993300', 
       'FF993366', 'FF333399', 'FF333333'] 


#import random function    
import random 

#create a random list of 29 colors . 
color_lst= random.sample(COLOR_INDEX, 29) 
print color_lst 

这里是结果:

['FF993366', 'FF333300', 'FFCCFFFF', 'FFCC99FF', 'FF993366', 'FFFF6600', 'FF339966', 'FF003366', 'FF000080', 'FF0000FF', 'FFFF00FF', 'FFFFFF99', 'FF800080', 'FF00CCFF', 'FF808080', 'FFFFCC99', 'FF333333', 'FF333399', 'FF99CC00', 'FFCCFFCC', 'FFFF99CC', 'FFFF9900', 'FF660066', 'FF008000', 'FFFF8080', 'FF99CCFF', 'FFFFCC00', 'FF003300', 'FF800000'] 
+0

我想创建一个具有特定镜头(通常在25左右)的列表,其中有54个项目,没有重复。 –

+2

你想要从整个列表还是从列表中抽取样本?这些可以产生不同的分布。如果你想从整个列表中抽样,使用'... = list(set(random.sample(...)))'。但是如果你只想从唯一身份证明中抽样,你应该做'... = random.sample(set(...))'。 – senshin

+1

看看那个http://stackoverflow.com/questions/13998901/generating-a-random-hex-color-in-python – mrvol

回答

2

您可以使用list(set(yourlist))删除重复项。由于元素是随机生成的,我假定他们的顺序无关紧要。

+0

如何使用列表(set())定义新组的镜头? –

+0

我的意思是我上面评论的长度 –