On Tue, Feb 28, 2017 at 2:57 PM, 语言破碎处 <[email protected]> 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.
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to