On Fri, Jul 17, 2020 at 11:49 AM Jonathan Fine <jfine2...@gmail.com> wrote:
> I am able today to respond to one question. Ricky asked if > >>> key_object = K(a=1, b=2) # where K is some new key object type > >>> d1 = {key_object: 3} > >>> d2 = {} > >>> d2[a=1, b=2] = 3 > >>> assert d1==d2 > was what I had in mind. The answer is YES, and in some ways better > expressed. (And the new key object type is introduced only if necessary for > the desired user experience.) > Maybe I’m being dense here, but I need more explainatikn of what this “key object” is, how it works, or what its purpose is. The use of dict literals makes the role of the key_object even clearer. > Not to me :-( For clarity, when we write > >>> d[1, 2, 3] = 4 > the associated key_object, for backwards compatibility, must be (1, 2, 3), > which is a tuple. > Yes, and tuples are perfectly valid dict keys, so nothing new here. > > Again for clarity, in today's Python the statements > >>> d[1, 2, 3] = 4 > >>> d[(1, 2, 3)] = 4 > are equivalent. I willingly accept this as a constraint. In my own mind, I > require it. > Which is due to tuples being created by the commas ... So what would the “key object” be I the proposed case: d2[a=1, b=2] A namedtuple? Or namedtuple-like object? The other trick here is that currently in indexes, the comma currently creates a tuple in the general case, for instance: Something[1:2, 3:4] creates a tuple with two slice objects in it. (Heavily used by numpy. So if d2[a=1, b=2] creates single object (which should not be dict-specific, so not a key per se), how would you created a tuple of more than one such object? Maybe: Something[(a=5, b=6), (c=7, d=8)] Anyway, I think a prototype is in order. -CHB Once again, thank you all, and I'll say more tomorrow (about 18 hours from > now). > -- > Jonathan > > > _______________________________________________ > Python-ideas mailing list -- python-ideas@python.org > To unsubscribe send an email to python-ideas-le...@python.org > https://mail.python.org/mailman3/lists/python-ideas.python.org/ > Message archived at > https://mail.python.org/archives/list/python-ideas@python.org/message/UFXWGFAUUQGMA7DBNYAK53THIWQOL632/ > Code of Conduct: http://python.org/psf/codeofconduct/ > -- Christopher Barker, PhD Python Language Consulting - Teaching - Scientific Software Development - Desktop GUI and Web Development - wxPython, numpy, scipy, Cython
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/MPAGYF33Q3JA4JTEYAHJCGQ6LWPIKN2L/ Code of Conduct: http://python.org/psf/codeofconduct/