R
Roman Yakovenko
Hi. Could somebody explain why sets and dict are different ?
from sets import Set as set
class A(object):
def __init__( self, x ):
self.x = x
def __eq__( self, other ):
return self.__dict__ == other.__dict__
print 'set( [A(1)] ) == set( [A(1)] )', set( [A(1)] ) == set( [A(1)] )
print 'A(1) == A(1)', A(1) == A(1)
print '[A(1)] == [A(1)]', [A(1)] == [A(1)]
d1 = { A(1) : None }
d2 = { A(1) : None }
print 'd1 == d2', d1 == d2
print 'd1.keys() == d2.keys()', d1.keys() == d2.keys()
print 'd1.values() == d2.values()', d1.values() == d2.values()
print 'd1.items() == d2.items()', d1.items() == d2.items()
output:
set( [A(1)] ) == set( [A(1)] ) False
A(1) == A(1) True
[A(1)] == [A(1)] True
d1 == d2 False
d1.keys() == d2.keys() True
d1.values() == d2.values() True
d1.items() == d2.items() True
Thanks.
from sets import Set as set
class A(object):
def __init__( self, x ):
self.x = x
def __eq__( self, other ):
return self.__dict__ == other.__dict__
print 'set( [A(1)] ) == set( [A(1)] )', set( [A(1)] ) == set( [A(1)] )
print 'A(1) == A(1)', A(1) == A(1)
print '[A(1)] == [A(1)]', [A(1)] == [A(1)]
d1 = { A(1) : None }
d2 = { A(1) : None }
print 'd1 == d2', d1 == d2
print 'd1.keys() == d2.keys()', d1.keys() == d2.keys()
print 'd1.values() == d2.values()', d1.values() == d2.values()
print 'd1.items() == d2.items()', d1.items() == d2.items()
output:
set( [A(1)] ) == set( [A(1)] ) False
A(1) == A(1) True
[A(1)] == [A(1)] True
d1 == d2 False
d1.keys() == d2.keys() True
d1.values() == d2.values() True
d1.items() == d2.items() True
Thanks.