如何从字典中获取随机键值对?
在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()))