鉴于以下情况:
topic = {'Countries': ['Somalia', 'Bermuda'],
'Cars' : ['Tesla', 'Lotus']
}
如何在随机字典中访问列表中的随机项目?确实尝试将每个列表中的元素组合成一个列表,尽管这并不是我所需要的。
鉴于以下情况:
topic = {'Countries': ['Somalia', 'Bermuda'],
'Cars' : ['Tesla', 'Lotus']
}
如何在随机字典中访问列表中的随机项目?确实尝试将每个列表中的元素组合成一个列表,尽管这并不是我所需要的。
使用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'
这是一个在所有项目上均匀随机的解决方案 - 如果有 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)