Re: [Python-Dev] Replacement for array.array('u')?

2019年3月22日 05:55:35 -0700

On 2019年3月22日 12:51:49 +0100
Stefan Behnel <[email protected]> wrote:
> Antoine Pitrou schrieb am 22.03.19 um 11:39:
> > On 2019年3月22日 20:31:33 +1300 Greg Ewing wrote: 
> >> A poster on comp.lang.python is asking about array.array('u').
> >> He wants an efficient mutable collection of unicode characters
> >> that can be initialised from a string. 
> > 
> > TBH, I think anyone trying to use array.array should be directed to
> > Numpy these days. The only reason for array.array being here is that
> > it predates Numpy. Otherwise we'd never have added it. 
> 
> Well, maybe it wouldn't get *added* these days anymore, with pip+PyPI
> nicely in place. But being there already, it makes for a nice and efficient
> "batteries included" list replacement for simple data that would otherwise
> waste a lot of object memory.
It's not really "batteries included". array.array() supports almost no
useful operation. It's a bare-bones container for which you have to
implement every useful feature by yourself.
(yes, you can use generic mutable sequence algorithms such
as heapq or random.shuffle; how often do you need to heapify or shuffle
an array of unicode codepoints?)
Also, when using a unicode array, there's no substantial win of memory
compared to a single str object. You may be losing some actually,
because of the flexible str representation.
Regards
Antoine.
_______________________________________________
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to