Sembra che gli elenchi restituiti keys()e i values()metodi di un dizionario siano sempre una mappatura 1 a 1 (supponendo che il dizionario non sia alterato tra la chiamata dei 2 metodi).
Per esempio:
>>> d = {'one':1, 'two': 2, 'three': 3}
>>> k, v = d.keys(), d.values()
>>> for i in range(len(k)):
print d[k[i]] == v[i]
True
True
True
Se non si modifica il dizionario tra la chiamata keys()e la chiamata values(), è errato supporre che il for-loop sopra stamperà sempre True? Non sono riuscito a trovare alcuna documentazione a conferma di ciò.