文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python怎么进行区间取值

2023-06-20 19:21

关注

这篇文章主要介绍“Python怎么进行区间取值”,在日常操作中,相信很多人在Python怎么进行区间取值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么进行区间取值”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

需求背景:

进行分值计算。如下图,如果只是一两个还好说,写写判断,但是如果有几十个,几百个,会不会惨不忍睹。而且,下面的还是三种情况。

例如:

Python怎么进行区间取值

Python怎么进行区间取值

解决:

# 根据值、比较list, 值list,返回区间值, other_value 即不在的情况    def get_value_by_between(self, compare_value, compare_list, value_list, other_value, type="compare", left=False,                             right=True):        try:            if compare_value is None or compare_value == '':                return other_value             if len(compare_list) != len(value_list):                raise Exception("区间对比两个list长度不一致")             # # 如果比较的值和其它情况值一致,说明是其它情况            # if compare_value == other_value:            #     return other_value             # 左边开区间            if compare_list[0] == -9999999 and compare_list[1] >= compare_value:                return value_list[0]             # 右边开区间            if right is True and compare_value > compare_list[len(compare_list) - 1]:                return value_list[len(compare_list) - 1]            # 左边开区间            # if left is True and compare_value <= compare_list[0]:            #     return compare_value[0]             for ind, this_val in enumerate(compare_list):                # 如果是最后一个,则返回最后一个值                if compare_value > compare_list[len(compare_list) - 1]:                    return value_list[len(compare_list) - 1]                # 返回默认的                elif (ind + 1) == len(compare_list):                    return other_value                 # 下一个,如果大于compare_list长度减1 ,就返回最后一个                next_val = compare_list[ind if ind >= len(compare_list) else ind + 1]                # 第一个的话就是 大于等于,小于下一个                if ind == 0 and compare_value >= this_val and compare_value <= next_val:                    return value_list[ind]                # 大于左边,小于等于右边                elif this_val < compare_value and compare_value <= next_val:                    return value_list[ind]        except:            log.error("根据区间计算分数异常", traceback.format_exc())        return other_value
# 数字型    def get_val_by_list(self, compare_value, compare_list, val_list, other_value):        try:            if compare_value is None:                return other_value             for ind, li in enumerate(compare_list):                if len(li) == 1 and compare_value == li[0]:                    return val_list[ind]                # 最后一个                elif len(li) == 1 and (ind + 1) == len(compare_list) and compare_value >= li[0]:                    return val_list[ind]                elif len(li) == 2 and compare_value >= li[0] and compare_value <= li[1]:                    return val_list[ind]        except:            log.error(" get_val_by_list 异常", traceback.format_exc())        return other_value

TEST

# creditTime 即值self.get_val_by_list(creditTime, [[0],[1],[2],[3]], [20, 10, 0, -100],                                                                   other_value=0)
self.get_value_by_between(taxCreditRating, [0, 60, 70, 80, 90],[-200, 0, 10, 20, 30], other_value=0)

如果是图2,即第三种情况,则需要多加一个0,和对应的值。

self.get_value_by_between(taxAmt12m, [0,0, 1000, 15000, 50000, 200000],[-50, -50, 0, 0, 5, 10], -0)

如果是负无穷大,则使用-999999

到此,关于“Python怎么进行区间取值”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯