首页 > 编程语言 >Python几个数字计算最接近某个值的和(用于报销的)

Python几个数字计算最接近某个值的和(用于报销的)

时间:2023-06-16 13:57:29浏览次数:34  
标签:group Python list1 list 报销 num result 某个

一、序

场景:公司报销需要用打车发票,金额不能多于报销额度,自己搭配出最接近报销的金额

二、实现思路

读取全部打车能报销的金额,全部相加,留下小等于报销金额的组合,然后取最大值与组合

三、实现代码

实现代码 import itertools import pandas as pd import numpy as np
num_data=pd.read_excel('F:\\file\\work_skill\\报销\\num_list.xlsx',header=0)
num_data1 = np.array(num_data)
num_x_list = num_data1.tolist()

num_result = sum(num_x_list, [])


def get_result(hope, list1):

    result = []  # 结果列表
    for i in range(1, len(list1) + 1):
        iter = itertools.combinations(list1, i)  # 求每个长度的组合
        group_item = list(iter)
        for x in range(0, len(group_item)):
            if sum(group_item[x]) <= hope:
                result.append(group_item[x])
    results=[]

    for i in range(0,len(result)):
        item_sum = 0
        for j in range(0,len(result[i])):
            item_sum+=result[i][j]
        results.append(item_sum)

    max_index=results.index(max(results))
    print("最接近的值为:",round(results[max_index],2),"组合是:",result[max_index])



if __name__ == '__main__':
    money = int(input("请输入您的报销金额:"))
    get_result(money, num_result)

四、实现效果

标签:group,Python,list1,list,报销,num,result,某个
From: https://www.cnblogs.com/wengming/p/17485346.html

相关文章

  • python基础语法练习题
    """一、必做题1、下面变量名正确的是(ABD)A.nameB.num1C.1_numD.name_A_12、Python不支持的数据类型有(A)A、charB、intC、floatD、list3、python源程序执行的方式(B)A编译执行B解析执行C直接执行D边编译边执行4、Python语言语句块的标记是(C)A分号B......
  • python基础-字符串
    基础必做题:题目1:现在有字符串:str1='pythoncainiao666'请使用代码找出第5个字符请复制一份字符串,保存在变量str_two当中(赋值运算符)"""str1='pythoncainiao666'str_two=str1[4]print(str_two)#输出o"""题目2:卖橘子的计算器(字符串转化)写一段代码,用户输入橘子的价格......
  • Python数据类型-列表与元组
    #题目1:删除如下列表中的"矮穷丑",写出2种或以上方法:#info=["yuze",18,"男","矮穷丑",["高","富","帅"],True,None,"狼的眼睛是啥样的"]info=["yuze",18,"男","矮穷丑",["......
  • Python中常用set()方法详解!
    set是Python中一种集合数据类型,表示一个无序且不重复的集合。set()方法可以用于创建一个空的集合,也可以将其他可迭代对象转换为集合。与其他Python数据类型不同,set没有索引,不能通过索引访问其元素,但可以使用一些方法来操作和访问集合中的元素。1、add():添加一个元素到set集......
  • Python初学者友好丨详解参数传递类型
    摘要: 本文清晰地解释了Python中的不同参数传递类型,并提供了示例代码来说明每种类型的用法。对于初学者或不清楚Python传参的读者们来说是非常有益的,文中提供了足够的信息来理解和使用Python中的函数参数传递。本文分享自华为云社区《提升Python函数调用灵活性:参数传递类型详解》......
  • Python初学者友好丨详解参数传递类型
    摘要: 本文清晰地解释了Python中的不同参数传递类型,并提供了示例代码来说明每种类型的用法。对于初学者或不清楚Python传参的读者们来说是非常有益的,文中提供了足够的信息来理解和使用Python中的函数参数传递。本文分享自华为云社区《提升Python函数调用灵活性:参数传递类型详解》,作......
  • Python学了基本语法 下一步该干什么 ?
    刚入门Python,学习了基本语法后,你可以开始编写简单的程序了。接下来,你可以学习Python的标准库和第三方库,掌握更多的编程技巧和知识,提高自己的编程能力。同时,也可以通过实践项目来巩固所学知识,提高自己的实战能力。学习Python基本语法是入门的第一步,接下来你可以考虑以下几个方向......
  • Python——Besutiful soup(网页)
    什么是beautifulsoup:是一个可以从HTML或XML文件中提取数据的Python库。它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。(官方)beautifulsoup是一个解析器,可以特定的解析出内容,省去了我们编写正则表达式的麻烦。这里我们用的是bs4:1、导入模块:frombs4importbea......
  • 快速架设Python HTTPS服务
    1.使用OpenSSL生成密钥和证书文件opensslreq-newkeyrsa:2048-nodes-keyoutexample.key-x509-days365-outexample.crt这是一个使用OpenSSL工具生成自签名证书的命令。它会要求你输入一些相关信息,例如CountryName、StateofProvinceName、LocalityName等。你......
  • ubuntu安装python3.8.3
    1.打开终端,更新软件包列表:sudoaptupdate2.安装编译Python所需的构建工具和库:sudoaptinstallbuild-essentiallibssl-devzlib1g-devlibncurses5-devlibncursesw5-devlibreadline-devlibsqlite3-devlibgdbm-devlibdb5.3-devlibbz2-devlibexpat1-devliblzma-dev......