
On Tue, Feb 28, 2017 at 2:57 PM, 语言破碎处 <mlet_it_bew@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.