首页 > 编程语言 >Python-记录一次迭代求和

Python-记录一次迭代求和

时间:2024-08-06 21:38:22浏览次数:10  
标签:combination 迭代 Python list 求和 result input hope

import itertools


def get_result(hope, list_input):
    """
    :param hope: # 期望相加所得参数
    :param list_input: # 所有数值
    :return:
    """

    def generate_combination(items, length):
        for combination in itertools.combinations(items, length):
            result_generate = list(combination)
            # print(result)
            yield result_generate

    # 容差值,避免float计算过小
    epsilon = 0.001
    # 剔除大于目标值部分的列表内容不进行计算
    larger_list = [i for i in list_input if i > hope]
    step_1_list = list(set(list_input) - set(larger_list))
    # 根据初步判断后的step_1_list,迭代每一种数据长度的可能性
    result = []
    for i in range(1, len(step_1_list) + 1):
        # print('当前判断长度:' + str(i))
        # 用迭代器  按照每种长度  生成每种可能
        calculate = generate_combination(items=step_1_list, length=i)
        # 循环迭代结果
        for x in calculate:
            # 对迭代器中每个元组求和
            if abs(sum(x) - hope) <= epsilon:
                result = x
                # print('计算出', hope, ',组合是', result)
                # 计算出结果,则该
                break  # 如果计算出结果,则终止对迭代结果循环
        else:
            # print('无结果')
            continue  # 未计算出结果,继续对迭代结果循环
        break  # if True 则终止对所有长度可能的循环
    return hope, result


if __name__ == '__main__':
    # 请在此输入求和值
    aggregate = [10, 20, 30, 40, 50, 99999]
    divisions = [1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 99998, 1]
    for i in aggregate:
        print(get_result(i, divisions))

标签:combination,迭代,Python,list,求和,result,input,hope
From: https://www.cnblogs.com/AZ26/p/18346045

相关文章

  • 如何使用 Python 进行数据可视化,比如绘制折线图?
    要使用Python进行数据可视化,可以使用matplotlib库来绘制折线图。以下是一个简单的示例代码:首先,确保已安装matplotlib库。可以使用以下命令安装:pipinstallmatplotlib在Python脚本中导入matplotlib库:importmatplotlib.pyplotasplt准备数据,以x和y坐标列表的形式存......
  • Python 中的生成器函数有什么作用及如何使用?
    生成器函数是一种特殊的函数,可以在迭代过程中动态生成值,而不是一次性返回所有值。它的作用有以下几点:节省内存:生成器函数一次只生成一个值,并在生成后立即释放内存,这样可以减小内存的占用,特别是在处理大数据集时非常有用。延迟计算:生成器函数可以按需生成值,只在需要的时......
  • Python、R银行信用卡客户流失机器学习预测热门文章合集
    原文链接:https://tecdat.cn/?p=37244原文出处:拓端数据部落公众号 分析师: CengjunWang目前,众多银行由于服务质量的降低、同业竞争的日益激烈等因素,面临着信用卡客户流失的棘手难题,这给银行经理施加了沉重的压力。而且,获取新的信用卡用户所需成本通常高于维持现有用户的成本。......
  • Python动态规划
    Python动态规划动态规划(DynamicProgramming,简称DP)是解决多阶段决策过程最优化问题的一种方法。动态规划算法的基本思想是:将待求解的问题分解成若干个相互联系的子问题,先求解子问题,然后从这些子问题的解得到原问题的解;对于重复出现的子问题,只在第一次遇到的时候对它进行求解,......
  • python-分享篇-英文短文自动分词写入文本文件
    文章目录准备代码效果准备代码importstringf=open('./data/split.txt')s=f.read()str1=s.title()print(str1)print("".join([sforsinstr1.splitlines(True)ifs.strip()]))list1=str1.split()#采用默认分隔符进行分割#字符串列表去重l1=list(s......
  • 【学习笔记】Matlab和python双语言的学习(最大最小化规划)
    文章目录前言一、最大最小化规划二、选址问题三、代码实现----Matlab1.Matlab的`fminimax`函数2.Matlab代码四、代码实现----python总结前言通过模型算法,熟练对Matlab和python的应用。学习视频链接:https://www.bilibili.com/video/BV1EK41187QF?p=28&vd_sour......
  • 关于简单的部分数学函数用python求导的示例
    1.求常数的导数题目代码1.求常数的导数:$f(x)=c$ 运行代码fromsympyimport*x,c=symbols('xc')c.diff(x)结果 2.求幂函数导数:题目代码2.求幂函数导数:$$f(x)=x^\mu$$运行代码fromsympyimport*x,mu=symbols('xmu')(x**mu).diff(x)结果  3.求三角......
  • 使用python解决一些计算 我们代码不比计算机差!
    使用python解决一些计算我们代码不比计算机差!一.简单基础计算1.基本的计算符号加+减-乘*****除/取余%乘方******整除//加减乘除不必多说说说比较陌生的取余乘方与整除取余%:10%3-->110-3-3-3=1最后剩下的数就是余数整除//:10//3-->310除3=3.333333去掉......
  • python 音频处理(2)——提取PPG特征之whisper库的使用(2.1)
    提取PPG特征之——whisper库的使用(2.1)1安装对应的包方法一(自用):直接pip即可:pipinstallopenai-whisper成功后如下图所示方法二:当时用了他这个方法环境直接崩了,已老实condainstall-cconda-forgeffmpegcondainstall-cconda-forgepoetrypoetryinitpoetry......
  • 18.python语句
    if语句一、if语句的介绍1、if单分支2、if的多分支3、if的嵌套4、三目运算=================================二、实操1、if单分支格式:if条件:执行语句1else执行语句2案例1在if语句判断中:我们可以使用比较运算符、成员运算符、逻辑运算符等,<,==,!=,>=,<=、and......