Python - 如何从哈希中随机选择项目?

Python - How to randomly choose items from hash?

我有文件 elements.py,我在其中定义了一些元素

def get_random_element():
first = {
 a : 1,
 b : 2
}

second = {
 a : 2,
 b : 3,
 c : 4,
 d : 6,
 ....
}
...
return [ first, second, ... ]

在主 python 文件中,我从 elements.py

中选择随机元素
from resources.elements import get_random_elements
...
element = random.choice(get_random_elements())

我的问题是,如果它随机选择第二个元素(仅第二个),我不想要所有项目(a、b、c、d ...),我也想随机选择它。因此,例如,如果随机生成器采用第二个元素,我也想随机选择它的项目,例如:

a : 2
c : 4
d : 6
g : 9
...

谁能帮帮我,怎么做?

再次随机化随机选择!

import random

def get_random_element():
    first = dict(a=1, b=2)
    second = dict(a=2, b=3, c=4, d=6, )
    return [first, second]


# choose a random dict
choice = random.choice(get_random_element())
# choose some random keys, and generate the selected values
elements = {sample: choice.get(sample) for sample in random.sample(list(choice), random.randint(1, len(choice)))}
print(elements)

我必须对你的问题做出一些假设,但我会尽力提供帮助。

基本上你在做什么

element = random.choice(get_random_elements())

正在从您 return 来自 get_random_elements()

的词典列表中随机取一个词典

所以你是随机选择一个字典,但我假设你想取一个随机字典的随机值,现在要实现这个你可以通过两种方式做到这一点:

第一种方式:

在elements.py

修改get_random_elements()的return值

return random.choice([ first, second, ... ])

这样你就可以有效地return从函数

中获取一个随机字典

确保在 elements.py

中随机导入

在main.py

假设你想要return一个随机字典的随机

element = random.choice(get_random_elements().values())

请注意 .values() return 是一个包含字典值的列表

第二种方式:

在main.py

element = random.choice(random.choice(get_random_elements()).values())

做的事情和上面一样,但我不推荐这样做,因为它与函数名称和你正在做的事情不保持一致