[Python-Dev] PEP 455: TransformDict (original) (raw)

Ethan Furman ethan at stoneleaf.us
Sat Sep 14 06:59:11 CEST 2013


On 09/13/2013 09:53 PM, Joao S. O. Bueno wrote:

On 13 September 2013 22:40, Ethan Furman <ethan at stoneleaf.us> wrote:

On 09/13/2013 06:25 PM, MRAB wrote:

On 14/09/2013 01:49, Steven D'Aprano wrote:

Is it more common to want both the canonical key and value at the same time, or to just want the canonical key? My gut feeling is that I'm likely to have code like this: d = TransformDict(...) for key in data: key = d.getcanonical(key) value = d[key] print("{}: {}".format(key, value)) I think I must be missing something. I thought that iterating over the dict would yield the original keys, so if you wanted the original key and value you would write: for key, value in data.items(): print("{}: {}".format(key, value)) Well, that's certainly how I would do it. ;) I hope you are aware that this pattern does not help when one wants one canonical key having a non-canonical one [...]

True, but I was thinking Steve was talking about printing the entire dict, in which case that is, indeed, how I would do it.

I mean - given no function to retrieve the canonical key, one would have to resort to:

mykey = data.transform(givenkey) for key, value in data.items(): if data.transform(key) == mykey: ....

Which is exactly why I, and others, would like to have the transform function easily available. Besides being able to use it to get a canonical key, one could use it to get the function itself. Yay, introspection!

-- Ethan



More information about the Python-Dev mailing list