2009-08-11 2 views
120

Attualmente ho un set Python di n dimensione dove n> = 0. Esiste una soluzione Python rapida a 1 o 2 linee per farlo? Ad esempio, il set sarà assomigliare:Come scegliere 2 elementi casuali da un set Python?

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

L'obiettivo è quello di raccogliere 2 oggetti casuali da quanto sopra ed è possibile che l'insieme di cui sopra può contenere 0, 1 o più elementi. L'unico modo che posso pensare di fare quanto sopra è convertire l'insieme in una lista (mutabile) da dove posso accedere a 2 indici univoci casuali all'interno della lunghezza del set.

+1

come scegliere elementi da elenco 0 o 1 elemento? – SilentGhost

+2

Quanto segue dovrebbe occuparsi di questo: importazione casuale vals = set ([1, 2, 3, 4, 5, 6]) random.sample (vals, min (len (vals), 2)) –

risposta

241

utilizza il modulo random: http://docs.python.org/library/random.html

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

Questi campioni i due valori senza sostituzione (quindi i due valori sono diversi).

+0

fasteeer , rispetto alla velocità della luce;) –

+5

Wow, sembra semplice, dovrò controllare più a fondo il documento casuale. –

+1

e può essere utilizzato anche con 'set' – SilentGhost