2012-02-01 37 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