如何从字典中获取随机键值对?

225 投票
18 回答
458710 浏览
提问于 2025-04-16 10:59

在Python中,假设有一个字典,比如

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

我该如何随机选择一个随机的项目(键值对)呢?

如果我只需要键,或者只需要值,这样可以优化吗?

18 个回答

13

给定一个字典 a,可以使用以下方法:

import random
random_key = random.sample(a.keys(), 1)[0]
15

可以使用 random.choice 来随机选择字典里的键(也就是国家名)。

在Python 2.x版本中,可以直接从字典的 keys 中选择:

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

而在Python 3.x版本中,首先需要创建一个列表,比如用 random.choice(list(d.keys()))

381

制作一个字典项的列表,然后按照常规方式随机选择

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

同样,如果只需要一个值,可以直接从值中选择:

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

撰写回答