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())
做的事情和上面一样,但我不推荐这样做,因为它与函数名称和你正在做的事情不保持一致
我有文件 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())
做的事情和上面一样,但我不推荐这样做,因为它与函数名称和你正在做的事情不保持一致