#!/usr/bin/env python
from operator import attrgetter
from random import shuffle
class Point:
    def __init__(self, x, y):
        self.x, self.y = x, y
def sort1(points):
    points.sort(key = lambda p: p.x)
def sort2(points):
    points.sort(key = attrgetter("x"))
if __name__ == "__main__":
    from timeit import Timer
    points1 = [Point(x, 2 * x) for x in range(100)]
    points2 = points1[:]
    num_times = 10000
    t1 = Timer("sort1(points1)", "from __main__ import sort1, points1")
    print t1.timeit(num_times)
    t2 = Timer("sort2(points2)", "from __main__ import sort2, points2")
    print t2.timeit(num_times)
$ ./attr.py
0.492087125778
0.29891705513
$
 
No comments:
Post a Comment