さて、先日のエントリにて、メディアンを加味した2d木の構築を紹介しました。コードの見通しを簡潔にする目的もあり、メディアンの選択にはsort()を用いました。 #!/usr/bin/python -t from operator import itemgetter from random import seed, randint def build(points, d=1): pts = list(points) if not pts: return None h = len(pts) // 2 pts.sort(key=itemgetter(d)) d = (d + 1) % 2 return [build(pts[0:h], d), build(pts[h+1:], d), pts[h]] if __name__ == '__main__': seed(0) pts = [(randi