¿Cómo puedo obtener un par clave-valor aleatorio de un diccionario?

Resuelto tekknolagi asked hace 13 años • 18 respuestas

En Python, dado un diccionario como

{
    'VENEZUELA': 'CARACAS',
    'CANADA': 'OTTAWA'
}

¿ Cómo puedo elegir un elemento aleatorio (par clave-valor)?

¿Qué pasa si solo necesito la clave o solo el valor? ¿Se puede optimizar?

tekknolagi avatar Feb 01 '11 12:02 tekknolagi
Aceptado

Haga una lista de los elementos del diccionario y elija aleatoriamente entre ellos de la forma habitual :

import random
d = {'VENEZUELA':'CARACAS', 'CANADA':'OTTAWA'}
country, capital = random.choice(list(d.items()))

De manera similar, si solo se necesita un valor, elija directamente entre los valores:

capital = random.choice(list(d.values()))
Gerrat avatar Feb 01 '2011 05:02 Gerrat

Llame a random.choice sobre las claves del diccionario (los países).

En 2.x, se keyspuede elegir directamente entre:

>>> import random
>>> d = dict(Venezuela = 1, Spain = 2, USA = 3, Italy = 4)
>>> random.choice(d.keys())
'Venezuela'
>>> random.choice(d.keys())
'USA'

En 3.x, primero cree una lista, por ejemplo random.choice(list(d.keys())).

user225312 avatar Feb 01 '2011 05:02 user225312

Dale un diccionario a, usa:

import random
random_key = random.sample(a.keys(), 1)[0]
lavee_singh avatar Sep 30 '2015 11:09 lavee_singh