[Python-ideas] unify usage of mutable and immutable objects

David Mertz mertz at gnosis.cx
Tue Feb 28 18:14:33 EST 2017


On Tue, Feb 28, 2017 at 2:57 PM, 语言破碎处 <mlet_it_bew at 126.com> wrote:

> 1) coverting to set or list is O(n) in time
>

A hypothetical frozenset.pop() is also necessarily O(N).  It needs to copy
N-1 elements into the new (smaller) frozenset object.  So this isn't an
argument.


> 2) if I have to keep the old copy,
>     standard set solution will be O(n) both in time and space!
>

Again, nothing gained here. Same applies to frozenset.pop() (assuming it
returns both the item popped and a reduced set).  If you just want
"something from frozenset" without creating a new almost-copy frozenset,
that is spelled `next(iter(fs))`.


> working examples:
>     1) priority queue:
>         insert and pop occur
>     2) share immutable data to difference subroutines:
>         each one can modify local copy safely and concurrency.
>

Sounds like `collections.deque` might be what you want (for concurrency,
not for immutability).  But a local copy will require, by definition, a
*copy* operation either way.


-- 
Keeping medicines from the bloodstreams of the sick; food
from the bellies of the hungry; books from the hands of the
uneducated; technology from the underdeveloped; and putting
advocates of freedom in prisons.  Intellectual property is
to the 21st century what the slave trade was to the 16th.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170228/68e22da6/attachment.html>


More information about the Python-ideas mailing list