0

間隔のオーバーラップサイズを計算するためのPythonで最も簡潔な方法は何ですか?

overlap([a, b], [c, d])間隔が同一の場合は0を返し、重複しているが同一ではない場合(Nが重複している場合)はNを返し、重複していない場合はNoneを返します。

ありがとう。

編集overlap誤解を招く可能性があります。つまり、間隔が重ならないサイズを意味します。したがって、0はそれらが同一であるということです。

4

1 に答える 1

3

sjr によってリンクされた質問で受け入れられた回答よりも簡潔にはなりませんが、次のようになります。

def overlap(a,b,c,d):
    r = 0 if a==c and b==d else min(b,d)-max(a,c)
    if r>=0: return r

また、必要に応じて、同じ間隔の場合は 0 を返し、重複しない間隔の場合は None を返します。

于 2012-06-14T03:29:20.623 に答える