# -*- Mode: Python -*- sets = [ {0:0, 1:0, 2:0}, {1:0, 5:0, 7:0}, {7:0, 1:0, 0:0}, ] def intersection (sets): sets.sort (lambda a,b:cmp(len(a),len(b))) set_a = sets[0].copy() for set_b in sets[1:]: for key in set_a.keys(): if not set_b.has_key (key): del set_a[key] return set_a