如何从字典的每个列表中随机选择一项?

时间:2018-12-20 15:37:49

标签: python python-2.7 dictionary random

我有字典:

>>> print(dict)
{'gs': ['bags', 'begs', 'bogs'],
 'le': ['Cole', 'Dale', 'Dole'],
 'll': ['Ball', 'Bell', 'Bill']}

对于每个键,我只想从其列表中选择一个单词(随机)。 输出如下:

{'gs': begs, 'le': 'Cole', 'll': 'Bill'}

以此类推。

我尝试了很多事情,但是没有一个字典的每个键都给我一个字。有一种简单的方法吗?

2 个答案:

答案 0 :(得分:5)

只需在字典的值上使用random.choice,即可重建仅具有1个名称作为值的dict理解

import random
d = {'gs': ['bags', 'begs', 'bogs'],
'le': ['Cole', 'Dale', 'Dole'],
'll': ['Ball', 'Bell', 'Bill']}


result = {k:random.choice(v) for k,v in d.items()}

一个输出:

{'gs': 'bogs', 'le': 'Dale', 'll': 'Bell'}

答案 1 :(得分:0)

我认为一种简单的方法是从0到每个列表的长度之间选择一个随机数,然后选择与该索引对应的项目!只需遍历字典的键(使用list(yourdictionary)),获取每个列表,找到其长度,选择随机数,最后获取元素。