当前位置: 首页 > 面试题库 >

Python:从时间间隔到值的映射

劳昊明
2023-03-14
问题内容

我正在重构一个函数,该函数给定一系列隐式定义间隔的端点,检查间隔中是否包含数字,然后返回对应的数字(以任何可计算的方式不相关)。现在处理该工作的代码是:

if p <= 100:
    return 0
elif p > 100 and p <= 300:
    return 1
elif p > 300 and p <= 500:
    return 2
elif p > 500 and p <= 800:
    return 3
elif p > 800 and p <= 1000:
    return 4
elif p > 1000:
    return 5

IMO太可怕了,并且缺少间隔和返回值都经过硬编码的缺点。当然,任何数据结构的使用都是可能的。


问题答案:
import bisect
bisect.bisect_left([100,300,500,800,1000], p)

这里的文档:bisect



 类似资料:
  • # interval(date) Alias for interval.floor(date). For example, d3.time.day(new Date()) returns midnight (12:00 AM) on the current day, in local time. # interval.floor(date) Rounds down the specified da

  • 问题内容: 时间间隔后如何调用方法?例如,如果要在2秒钟后在屏幕上打印声明,其程序是什么? 问题答案: 答案是一起使用javax.swing.Timer和java.util.Timer: 显然,仅使用java.util.Timer可以达到2秒的打印间隔,但是如果要在一次打印后停止打印,那将很难。 另外,请勿在代码中混用线程,而无需线程即可! 希望这会有所帮助!

  • 问题内容: 我有一列称为“ s_timestamp”。 如何返回时间戳中具有当天的所有记录? 例如, 我想要以下输出: 让我知道是否不清楚。 问题答案: 只是使用。例如 日期() CURDATE()

  • 时间间隔:一条链上相邻区块的时间差。时间间隔越小,出块速度越快,TPS就越高。 本系统中,时间最小单位为1毫秒。 第一条链的时间间隔为1分钟,新链的时间间隔降为其父链的15/16,所以第二条链的时间间隔为56250毫秒。 新链有更小的时间间隔,出块速度更快。 区块的时间间隔可以根据需要调整,最大为1分钟。

  • 问题内容: 我有两次,开始时间和停止时间,格式为10:33:26(HH:MM:SS)。我需要两次之间的区别。我一直在浏览Python文档并在线搜索,我想这可能与datetime和/或time模块有关。我无法使其正常工作,并且仅在涉及约会时才继续寻找方法。 最终,我需要计算多个持续时间的平均值。我得到了工作上的时差,并将它们存储在列表中。我现在需要计算平均值。我正在使用正则表达式解析原始时间,然后进

  • 问题内容: 我正在使用XmlHttpRequests将图像上传到服务器,并且想向用户显示这些上传的进度。 不幸的是,对我的onprogress-event处理程序的调用之间的间隔太大。对于500k图像,通常仅一次或两次调用onprogress。 这是我的代码: 可以更改此行为,还是在浏览器实现中将其硬编码? 问题答案: W3在其XMLHttpRequest Level 2 文档中提出了以下准则。显