2015-12-21 65 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

我的意思是我上面評論的長度 –