[EMAIL PROTECTED] wrote:
Hello,

I have a long list of memory-heavy objects that I would like to access
in differently sorted order. Let's say I'd like to have lists called
by_date or by_size that I can use to access the objects in the
specified order.

Of course I can just build those lists naively by creating copies of
the original list and then sorting them according to my wishes. But
that would create huge memory overhead. Of course I could use lists of
indices into the "master" list, just as in C I'd create lists or
arrays of pointers into the original data.

Is there a clever Python way to do this, or should I just use lists of
indices?

I know there is a thing called "shallow copy" that has something to do
with not duplicating memory content but I don't understand the
concept. Maybe that's what would help here, too.

A containers/collections contain/collect references to objects, not the objects themselves.

lcopy = somelist[:] # or list(somelist)

makes a shallow copy, which only copies the references.

There are applications for lists of indexes, but they are fairly specialized.

tjr

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to