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

Cha*_*son 4 python random dictionary list key-value

我有一本字典:

dict = {
    "Apple": ["Green", "Healthy", "Sweet"],
    "Banana": ["Yellow", "Squishy", "Bland"],
    "Steak": ["Red", "Protein", "Savory"]
}
Run Code Online (Sandbox Code Playgroud)

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

import random

food = [dict.value.random.choice()]
Run Code Online (Sandbox Code Playgroud)

但这不起作用(毫不奇怪,它看起来过分和令人困惑)

然后我想要print食物:

print food
Run Code Online (Sandbox Code Playgroud)

并看到:

green
squishy
savory
Run Code Online (Sandbox Code Playgroud)

或随机选择的任何值.

正在创建不必要的列表?我会继续发布尝试.

只是为了澄清为什么这不是重复:我不想从字典中随机抓取一个项目,我想从字典中的每个列表中随机抓取一个项目.

Kas*_*mvd 5

您可以使用列表推导来循环您的值:

>>> 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']
Run Code Online (Sandbox Code Playgroud)

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

>>> print '\n'.join(food)
Savory
Green
Squishy
>>> for val in food :
...      print val
... 
Savory
Green
Squishy
Run Code Online (Sandbox Code Playgroud)