2012-02-01 35 views
3

我很苦惱這個。隨機保留X字典的百分比

我需要隨機保留字典的X百分比,以便進行一些分析。

用戶將輸入他們希望保留的數據的百分比。
示例值:10,50,70,100

因此,當用戶輸入30時,我將如何去隨機保留每100個元素中的30個?

我嘗試了下面,但它不工作,因爲我需要一本字典。建議?

images = {} 
for vote in votes_selected: 
    images[int(vote['id_left'])] = 1 
    images[int(vote['id_right'])] = 1 
selected_images = random.sample(images, int(len(images) * 50/100)) 

回答

7

如果順序並不重要......

import random 
random.sample(votes_selected, int(len(votes_selected) * DATA_PERCENTAGE/100)) 

附:如果votes_selected實際上是一個字典,那麼你可以這樣做:

dict(random.sample(votes_selected.iteritems(), int(len(votes_selected) * DATA_PERCENTAGE/100))) 
+0

我犯了一個錯誤。這不是一個列表,它是一個字典,我將它用作哈希表。您的代碼正如預期的那樣返回一個列表,但我需要返回一個字典,以便在隨機採樣完成後將其用作查找。 – 2012-02-01 18:56:20

+0

如果'votes_selected'是一個字典,此解決方案將返回一個鍵數組。 – istruble 2012-02-01 19:08:40