2009-08-11 18 views
120

actualmente tienen un conjunto de Python de tamaño n, donde n> = 0. ¿Hay una solución Python 1 o 2 líneas rápida de hacerlo? Por ejemplo, el conjunto se verá así:¿Cómo selecciono 2 elementos aleatorios de un conjunto de Python?

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

El objetivo es escoger 2 artículos al azar de lo anterior y es posible que el conjunto anterior puede contener 0, 1 o más elementos. La única forma en que puedo pensar en hacer lo anterior es convertir el conjunto en una lista (mutable) desde donde puedo acceder a 2 índices aleatorios únicos dentro de la longitud del conjunto.

+1

¿cómo se va a recoger a los elementos de la lista 0- o 1-artículo? – SilentGhost

+2

El siguiente debe tener cuidado de que: importación azar Vals = conjunto ([1, 2, 3, 4, 5, 6]) random.sample (Vals, min (len (Vals), 2)) –

Respuesta

241

utilizar el módulo random: http://docs.python.org/library/random.html

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

Este muestras de los dos valores sin de reemplazo (por lo que los dos valores son diferentes).

+0

fasteeer , que la velocidad de la luz;) –

+5

Guau, eso parece simple, tendré que verificar el documento al azar con más detalle. –

+1

y también se puede usar con 'set' – SilentGhost

Cuestiones relacionadas