2009-08-11 2 views
120

В настоящее время у меня есть набор Python размера n, где n> = 0. Есть ли быстрое решение для Python 1 или 2 строки? Например, набор будет выглядеть следующим образом:Как выбрать 2 случайных элемента из набора Python?

fruits = set(['apple', 'orange', 'watermelon', 'grape']) 

Цель состоит в том, чтобы выбрать 2 случайные элементы из выше, и возможно, что выше набор может содержать 0, 1 или более элементов. Единственный способ, я могу думать о том, чтобы сделать выше, - это преобразовать набор в список (изменяемый), откуда я могу получить доступ к 2 случайным уникальным индексам в пределах длины набора.

+1

как вы собираетесь выбирать предметы из списка 0 или 1 пункта? – SilentGhost

+2

Следующее должно позаботиться об этом: import random vals = set ([1, 2, 3, 4, 5, 6]) random.sample (vals, min (len (vals), 2)) –

ответ

241

Используйте random модуль: http://docs.python.org/library/random.html

import random 
random.sample(set([1, 2, 3, 4, 5, 6]), 2) 

, образец двух значений без замены (так что два значения различаются).

+0

fasteeer , чем скорость света;) –

+5

Ничего себе, это выглядит просто, мне нужно будет проверить случайный документ более подробно. –

+1

и может использоваться с 'set' также – SilentGhost

Смежные вопросы