gpt4 book ai didi

python - 我如何生成一个假设策略来生成一个列表,该列表至少包含它从中采样的每个元素中的一个?

转载 作者:行者123 更新时间:2023-12-05 03:42:36 26 4
gpt4 key购买 nike

我正在寻找一种构建 Hypothesis 的方法策略使得给定列表中的每个元素都出现在生成的列表中。

例如

假设我们有

values = [0, 1, 2, 3, 5, 8]

我们想要一个策略,从给定的值生成列表,这样每个元素至少出现一次,例如

[0, 1, 2, 3, 5, 8]
[2, 1, 0, 3, 5, 8]
[0, 0, 1, 2, 3, 5, 8]
[0, 0, 0, 1, 2, 3, 5, 8]
[5, 2, 5, 2, 8, 2, 0, 8, 3, 2, 0, 5, 5, 3, 5, 5, 5, 1]

我的程序出现错误,因为我需要选择一个不存在于使用 sampled_from 策略的列表中的值。 (大概有一个足够大的列表,这样一个值出现的可能性会增加,但是我正在处理昂贵的对象,这似乎是一种解决方法)

我花了很多时间试图弄清楚是否有任何策略强制某些值将出现在生成的值中——fixed_dictionaries 似乎是唯一的——我正在努力甚至想出一个简单的复合策略。

最佳答案

我们可以使用strategies.lists,然后与values连接,这样每个值都会出现,然后洗牌

from hypothesis import strategies

sub_values = (strategies.lists(strategies.sampled_from(values))
.map(lambda sublist: sublist + values)
.flatmap(strategies.permutations))

关于python - 我如何生成一个假设策略来生成一个列表,该列表至少包含它从中采样的每个元素中的一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67210087/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com