Set and {} comparison confusion

Roman Yakovenko roman.yakovenko at actimize.com
Thu Sep 9 08:57:53 CEST 2004


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.



More information about the Python-list mailing list