On Fri, 26 Jun 2020 at 14:30, Hans Ginzel <[email protected]> wrote: > Date: Fri, 26 Jun 2020 18:47:44 +0200 > From: Hans Ginzel <[email protected]> > To: Hans Ginzel <[email protected]> > Subject: Access (ordered) dict by index; insert slice > > Hello, > > thank you for making dict ordered. > Is it planned to access key,value pair(s) by index? See > https://stackoverflow.com/a/44687752/2556118 for example. Both for > reading and (re)writing? > Is it planned to insert pair(s) on exact index? Or generally to slice? See > splice() in Perl, https://perldoc.perl.org/functions/splice.html. > > Use case: Represent database table metadata (columns). It is useful as to > access columns both by name and by index as to insert column on specific > position, https://dev.mysql.com/doc/refman/8.0/en/alter-table.html, > “ALTER TABLE ADD COLUMN [FIRST |AFTER col]” (consider default order or > table storage size optimisation by aligning). > > These are odd requirements.
No - Python dictionaries are ordered, by order of insertion only, but one can't generally do any manipulation by the numeric index of a dictionary entry - and it will stay that way. If you need such an hybrid data structure, you could just have a list of tuples as data structure, and use collections.abc.MutableMapping to provide a dict-like interface to it (and even a parallel dictionary to be used as an index for better than linear search). I could create such a data structure if you want, but I don't see that as useful enough to be part of the language. The part allowing slice-assignment seems, actually, quite confusion prone - since in dictionaries the order is order of insertion, not alphabetical order or any other. > Thank you in advance, > Hans > PS1: Named tuples cannot be used, are immutable. > PS2: See > https://metacpan.org/pod/perlref#Pseudo-hashes:-Using-an-array-as-a-hash > _______________________________________________ > Python-ideas mailing list -- [email protected] > To unsubscribe send an email to [email protected] > https://mail.python.org/mailman3/lists/python-ideas.python.org/ > Message archived at > https://mail.python.org/archives/list/[email protected]/message/S7UMTWK65X6BJDYZ3SSU7I7HOIASDMMJ/ > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-ideas mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/[email protected]/message/JKFZB2AGNPKD55CU75IMZQOCVGCPHMND/ Code of Conduct: http://python.org/psf/codeofconduct/
