Perhaps a NamedList would be helpful here?

One could write one fairly easily.

-CHB


On Fri, Jun 26, 2020 at 6:13 PM Steven D'Aprano <st...@pearwood.info> wrote:

> On Fri, Jun 26, 2020 at 10:45:07AM -0700, Brett Cannon wrote:
>
> > Why can't you do `tuple(dict.items())` to get your indexable pairs?
>
> I don't think that an immutable copy is going to help Hans with his
> use-case, since he already mentions that tuples don't solve his problem.
>
> Swapping to a list gives you a mutable sequence that makes inserting
> columns easy, but now lookups by column name are O(N) instead of O(1).
>
> Hans, I think that a dict is probably not the best solution here, but
> you can use a dict in an augmented data structure. I would consider
> keeping your columns in a list, indexed by position, and keeping a table
> of columns to index in a dict. Whenever you insert or remove a column,
> you can update the table.
>
> If this sounds like a lot of work, yes, it probably is, and making dicts
> perform that work for *every single dict* would slow down the language a
> lot. Dicts are critical for speed and performance because they are used
> so extensively. Globals, builtins, almost every module, class and
> instance use dicts internally, so they need to be as fast as possible.
>
> If your experience with Perl tells you differently, please explain to us
> how Perl hashes work in order that they support both fast hash indexing
> and positional indexing at the same time.
>
>
> --
> Steven
> _______________________________________________
> 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/POHINM764UHZKVXK3GWOYIJPF525IDCS/
> 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/YE7NC54KA4J7ESZRM4ZFE472QFGNYVEY/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to