Хранить в случайном порядке X процентов словаря - PullRequest
4 голосов
/ 01 февраля 2012

Я борюсь с этим.

Мне нужно случайно сохранить X процентов словаря для некоторого анализа, который я делаю.

Пользователь вводит процент данных, которые он хотел бы сохранить.
Пример значений: 10, 50, 70, 100

Итак, когда пользователь вводит 30, как бы я собрал в случайном порядке 30 из каждого 100-го элемента?

Я попробовал следующее, но оно не работает, потому что мне нужен словарь обратно. Предложения?

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))

1 Ответ

8 голосов
/ 01 февраля 2012

Если порядок не имеет значения ...

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

PS Если выбрано voice_selected, то вы можете сделать это:

dict(random.sample(votes_selected.iteritems(), int(len(votes_selected) * DATA_PERCENTAGE / 100)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...