2009-08-11 9 views
120

Mam obecnie zestaw Pythona o rozmiarze n, gdzie n> = 0. Czy jest to szybkie rozwiązanie Pythona z 1 lub 2 liniami, aby to zrobić? Na przykład, zestaw będzie wyglądać następująco:Jak wybrać 2 losowe elementy z zestawu Python?

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

Celem jest wybranie 2 losowych elementów z wyżej i jest możliwe, że powyższy zestaw może zawierać 0, 1 lub więcej elementów. Jedyny sposób, w jaki mogę to zrobić, to przekonwertować zestaw na listę (zmienną), skąd mogę uzyskać dostęp do 2 losowych unikatowych indeksów w obrębie długości zestawu.

+1

w jaki sposób wybierasz przedmioty z listy 0- lub 1-itemowej? – SilentGhost

+2

Powinny się nim zająć: import losowo vals = zestaw ([1, 2, 3, 4, 5, 6]) losowy.sample (vals, min (len (vals), 2)) –

Odpowiedz

241

pomocą modułu random: http://docs.python.org/library/random.html

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

This próbki dwóch wartości bez wymiany (tak, że dwie wartości są różne).

+0

fasteeer , niż prędkość światła;) –

+5

Wow, to wygląda na proste, będę musiał sprawdzić losowy dokument bardziej szczegółowo. –

+1

i może być używany z 'set' oraz – SilentGhost

Powiązane problemy