我如何从字典中得到一个随机对?我正在制作一款游戏,玩家需要猜测一个国家的首都,我需要随机出现问题。

字典看起来像{'VENEZUELA':'CARACAS'}

我该怎么做呢?


当前回答

从字典集dict_data中选择50个随机键值:

sample = random.sample(set(dict_data.keys()), 50)

其他回答

试试这个(使用随机。物品选择)

import random

a={ "str" : "sda" , "number" : 123, 55 : "num"}
random.choice(list(a.items()))
#  ('str', 'sda')
random.choice(list(a.items()))[1] # getting a value
#  'num'
>>> import random
>>> d = dict(Venezuela = 1, Spain = 2, USA = 3, Italy = 4)
>>> random.choice(d.keys())
'Venezuela'
>>> random.choice(d.keys())
'USA'

通过随机调用。选择字典的键(国家)。

这适用于Python 2和Python 3:

随机键:

random.choice(list(d.keys()))

一个随机值

random.choice(list(d.values()))

一个随机键和值

random.choice(list(d.items()))

我通过寻找一个相当类似的解决方案找到了这篇文章。如果要从字典中选取多个元素,可以使用:

idx_picks = np.random.choice(len(d), num_of_picks, replace=False) #(Don't pick the same element twice)
result = dict ()
c_keys = [d.keys()] #not so efficient - unfortunately .keys() returns a non-indexable object because dicts are unordered
for i in idx_picks:
    result[c_keys[i]] = d[i]

因为最初的帖子想要一对:

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

(python 3风格)