内置函数,用于计算Python中的重叠

25 python

是否有内置函数来计算两个离散区间之间的重叠,例如[10,15]和[20,38]之间的重叠?在这种情况下,重叠为0.如果是[10,20],[15,20],则重叠为5.

Mar*_*ers 64

你可以使用max和min:

>>> def getOverlap(a, b):
...     return max(0, min(a[1], b[1]) - max(a[0], b[0]))

>>> getOverlap([10, 25], [20, 38])
5
>>> getOverlap([10, 15], [20, 38])
0
Run Code Online (Sandbox Code Playgroud)


unu*_*tbu 14

查看pyinterval http://code.google.com/p/pyinterval/

import interval
x=interval.interval[10, 15]
y=interval.interval[20, 38]
z=interval.interval[12,18]

print(x & y)
# interval()
print(x & z)
# interval([12.0, 15.0])
Run Code Online (Sandbox Code Playgroud)

  • +1因为我不知道那个模块,但如果他只是需要它来进行这个计算可能会有点过分. (2认同)
  • OP 正在寻找“内置功能”。 (2认同)