On 09/11/2013 02:39 PM, Tim Delaney wrote: > On 12 September 2013 02:03, Ethan Furman <ethan at stoneleaf.us <mailto:ethan at stoneleaf.us>> wrote: > > On 09/11/2013 08:49 AM, Victor Stinner wrote: > > 2013/9/11 Ethan Furman <ethan at stoneleaf.us <mailto:ethan at stoneleaf.us>>: > > He isn't keeping the key unchanged (notice no white space in MAPPING), he's > merely providing a function that will automatically strip the whitespace > from key lookups. > > > transformdict keeps the key unchanged, see the first message: > > >>> d = transformdict(str.lower) > >>> d['Foo'] = 5 > >>> d['foo'] > 5 > >>> d['FOO'] > 5 > >>> list(d) > ['Foo'] > > That seems backwards to me. I would think that retrieving the keys from the dict would return the transformed keys (I'd > call them canonical keys). That way there's no question about which key is stored - it's *always* the transformed key. At this point there is still no question: it's the first version of the key seen. For a stupid example: --> d = transformdict(str.lower) --> d['ThePyramid'] = 'Game Show' --> d['AtOnce'] = now() --> for k, v in d.items(): ... print(k, v) Imagine writing a function to get that capitalization right. > In fact, I think this might get more traction if it were referred to as a canonicalising dictionary (bikeshedding, I know). Whoa, that's way harder to spell! ;) Drop the 'ising', though, and I'm in. -- ~Ethan~
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4