pitón 2,7
dict views: Soporta operaciones de conjuntos directos, etc.
>>> dic1 = {'a':'a','b':'c','c':'d'}
>>> dic2 = {'b':'a','a':'c','c':'d'}
>>> dic1.viewkeys() == dic2.viewkeys()
True
>>> dic1.viewkeys() - dic2.viewkeys()
set([])
>>> dic1.viewkeys() | dic2.viewkeys()
set(['a', 'c', 'b'])
de manera similar en 3.x: (THX @lennart)
>>> dic1 = {'a':'a','b':'c','c':'d'}
>>> dic2 = {'b':'a','a':'c','c':'d'}
>>> dic1.keys() == dic2.keys()
True
>>> dic1.keys() - dic2
set()
>>> dic1.keys() | dic2
{'a', 'c', 'b'}
Python 2.4+
set operation: iteración directa sobre las claves de diccionario en un conjunto
>>> dic1 = {'a':'a','b':'c','c':'d'}
>>> dic2 = {'b':'a','a':'c','c':'d'}
>>> set(dic1) == set(dic2)
True
no se ordenan las teclas(), si es posible. – user469652
¿Por qué no? Es * posible * que no ordene la clave, pero esa es una restricción extraña y arbitraria. ¿Es esta tarea? –
"dic1 y dic2 tienen las mismas teclas, pero en diferente orden". - Esto no tiene sentido en un diccionario de Python: las claves no están ordenadas. – eumiro