Si estás preguntando si el las claves y los valores se devuelven en el mismo orden, la respuesta es Sí. El documentation dice:
Si items()
, keys()
, values()
, iteritems()
, iterkeys()
y itervalues()
son llamados sin necesidad de modificaciones que intervienen en el diccionario, las listas directamente corresponderán.
Si estás preguntando si dict(zip(d.keys(), d.values())) == d
siempre se evaluará como true en todas las circunstancias, la respuesta es No. Usted puede tener múltiples hilos, con un cambio de d
mientras que el otro está ejecutando d.keys()
, d.values()
o dict(...)
. Esto creará modificaciones intermedias, invalidando las condiciones citadas anteriormente.
Sin embargo, el desempaquetado es innecesario, 'dict (d.iteritems())' funciona igual de bien. Para el caso, la mayoría de los dicts (incluyendo los 'dict') asignaciones de casos especiales (sobre los iterables en general) y lo hacen de todos modos, aunque no estoy seguro de si es universal. – delnan
@delnan ha votado a favor su comentario, pero creo que mantenerse cerca del ejemplo tiene sentido aquí. – Triptych
En realidad, nunca querría hacer 'dict ((k, v) para k, v en d.iteritems())' o 'dict (d.iteritems())' porque 'd.copy()' es mucho mejor . – Gabe