There is definitely a bug. Maybe the follownig snippet is more clear: class OBJ: def __init__(self,identifier): self.id=identifier self.allocated=0 #def __cmp__(self,other): # return cmp(other.allocated,self.allocated) mylist=[OBJ(i) for i in range(10)] excluded=[obj for obj in mylist if obj.id in [2,4,6,8]] exclusion_list_by_id=[2,4,6,8] print 'exclusion list by id=',exclusion_list_by_id for obj in mylist: print 'current obj=',obj.id, if obj in excluded: print ' ---> THIS OBJECT IS EXCLUDED' assert obj.id in exclusion_list_by_id continue print
If you uncomment the two lines, the assert will be erroneously triggered. Alain -- http://mail.python.org/mailman/listinfo/python-list