python-3.x - 是否有一个函数可以查找列表中哪些 float 加起来等于特定间隔内的数字?

标签 python-3.x

我有一个最多包含 6 个 float 的特定列表,我需要一个函数来选择这 6 个数字中的哪一个相加后会产生给定间隔内的数字,例如:29 < Sum < 31.

list = [0.96, 6.72, 4.8, 7.68, 24.96, 6.72]
min_number = 29
max_number = 31

如果可能的话,我还希望能够将生成的 float 移至新列表,并将其余 float 移至另一个列表。

最佳答案

一个可能的解决方案是生成列表的所有 n 个长度组合,其中:

1 < n < len(list)


以下代码:

import itertools

mylist = [0.96, 6.72, 4.8, 7.68, 24.96, 6.72]
min_number = 29
max_number = 31

all_perms = []

for index in range(len(mylist)):
    perm = itertools.combinations(mylist,index)
    for i in perm:
        all_perms.append(i)

for i in all_perms:
    if min_number < sum(i) < max_number:
        print(i)

打印独特的组合:

(4.8, 24.96)
(0.96, 4.8, 24.96)

关于python-3.x - 是否有一个函数可以查找列表中哪些 float 加起来等于特定间隔内的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57906226/

相关文章:

python - 如果一个变量有两种可能的结果,你如何分别从列表中添加值

python-3.x - 有没有办法在 plotly 的热图中反转 y 轴的顺序

python-3.x - PyTorch:在训练中添加验证错误

python-3.x - 使用 zeep 在 DHL-SOAP API 上进行身份验证

python-3.x - 通过 pip 安装 librosa 失败

python - 使用大型数据集训练对话流

python - 如何使用 python3 对 Controller 进行编程

python-3.x - 创建实例失败时调用的析构函数?

python - 如何从预训练模型中删除正则化?

python-3.x - 为什么 dict 可以在函数之外访问,但 list 却不能?