鉴于以下内容:
topic = {'Countries': ['Somalia', 'Bermuda'],
'Cars' : ['Tesla', 'Lotus']
}
如何从随机词典中的列表中访问随机项?尝试将每个列表中的元素组合成一个列表,但这并不是我需要的。
答案 0 :(得分:2)
在random.choice
上使用.keys()
,然后再次使用与所选键相关联的值:
import random
key = random.choice(list(topic.keys()))
value = random.choice(topic[key])
我们需要将.keys()
(字典视图)的结果转换为一个列表,以便您能够从中进行随机选择。
演示:
>>> import random
>>> topic = {'Countries': ['Somalia', 'Bermuda'],
... 'Cars' : ['Tesla', 'Lotus']
... }
>>> key = random.choice(list(topic.keys()))
>>> value = random.choice(topic[key])
>>> value
'Tesla'
答案 1 :(得分: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)