5.9.1 使用例

一般には、bisect() 関数は数値データを分類するのに役に立ちます。 この例では、bisect() を使って、(たとえば)順序のついた数値の区切り点 の集合に基づいて、試験全体の成績の文字を調べます。 区切り点は 85 以上は `A'、 75..84 は `B'、などです。

>>> grades = "FEDCBA"
>>> breakpoints = [30, 44, 66, 75, 85]
>>> from bisect import bisect
>>> def grade(total):
...           return grades[bisect(breakpoints, total)]
...
>>> grade(66)
'C'
>>> map(grade, [33, 99, 77, 44, 12, 88])
['E', 'A', 'B', 'D', 'F', 'A']

bisect モジュールは Queue モジュールと一緒に使って、優先順序つき待ち行列を実装 することができます。 (Fredrik Lundh の好意による例です):

import Queue, bisect

class PriorityQueue(Queue.Queue):
    def _put(self, item):
        bisect.insort(self.queue, item)

# 使い方
queue = PriorityQueue(0)
queue.put((2, "second"))
queue.put((1, "first"))
queue.put((3, "third"))
priority, value = queue.get()
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。