Python:如何从字典键中随机选择一个值?

2024-06-02 04:53:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本字典:

dict = {
    "Apple": ["Green", "Healthy", "Sweet"],
    "Banana": ["Yellow", "Squishy", "Bland"],
    "Steak": ["Red", "Protein", "Savory"]
}

我想从每个键中打印一个随机值,所以我试图先将它们放入一个列表中:

import random

food = [dict.value.random.choice()]

但这不起作用(没什么奇怪的,看起来太过分了,让人困惑)

然后我想print食物:

print food

看看:

green
squishy
savory

或者随机选择任何值。

没有必要创建列表吗?我会继续发布尝试。

为了解释为什么这不是重复的:我不想随机从字典中获取一个条目,我想随机从字典中的每个列表中获取一个条目。


Tags: apple列表字典food条目randomgreendict
3条回答

您可以使用列表理解来循环您的值:

>>> my_dict = {
...     "Apple": ["Green", "Healthy", "Sweet"],
...     "Banana": ["Yellow", "Squishy", "Bland"],
...     "Steak": ["Red", "Protein", "Savory"]
... }
>>> import random
>>> food=[random.choice(i) for i in my_dict.values()]
>>> food
['Savory', 'Green', 'Squishy']

对于想要的打印,您可以使用join函数或循环food并逐个打印元素:

>>> print '\n'.join(food)
Savory
Green
Squishy
>>> for val in food :
...      print val
... 
Savory
Green
Squishy

也可以使用for循环:

import random

dict = {
    "Apple": ["Green", "Healthy", "Sweet"],
    "Banana": ["Yellow", "Squishy", "Bland"],
    "Steak": ["Red", "Protein", "Savory"]
}

for key, value in dict.items():
    print random.choice(value), key

结果:

Red Steak
Healthy Apple
Bland Banana

使用列表理解,如

import random
choices = [random.choice(v) for k, v in your_dict.items()] # iterate over the dict items
print(choices)

输出

['Protein', 'Green', 'Squishy']

相关问题 更多 >