1

鉴于以下情况:

topic = {'Countries': ['Somalia', 'Bermuda'],
         'Cars'     : ['Tesla', 'Lotus']
}

如何在随机字典中访问列表中的随机项目?确实尝试将每个列表中的元素组合成一个列表,尽管这并不是我所需要的。

4

2 回答 2

2

使用random.choice,.keys()然后再次使用与所选键关联的值:

import random

key = random.choice(list(topic.keys()))
value = random.choice(topic[key])

我们需要将.keys()(dict 视图)的结果转换为列表,以便您能够从中进行随机选择。

演示:

>>> import random
>>> topic = {'Countries': ['Somalia', 'Bermuda'],
...          'Cars'     : ['Tesla', 'Lotus']
... }
>>> key = random.choice(list(topic.keys()))
>>> value = random.choice(topic[key])
>>> value
'Tesla'
于 2012-11-03T09:49:14.827 回答
1

这是一个在所有项目上均匀随机的解决方案 - 如果有 1000 辆汽车和 1 个国家/地区,它会更频繁地挑选汽车

import random
# build a list of containing key/value pairs
values = [(k, v) for k, values in topic.items() for v in values]

# pick one of these
key, value = random.choice(values)
于 2012-11-03T09:57:28.377 回答