[Python-ideas] Memoryview tolist() method is misleading

Stefan Krah stefan at bytereef.org
Fri Sep 14 22:00:09 CEST 2012


Alexander Belopolsky wrote:
> Consider this:
> >>> memoryview(b'x').cast('B', ()).tolist()
> 120
>
> The return value of to list() is an int, not a list.


That's because NumPy's tolist() does the same thing:

>>> x = numpy.array(120, dtype='B')
>>> x
array(120, dtype=uint8)
>>> x.tolist()
120


If you implement tolist() recursively like in _testbuffer.c and choose
the zeroth dimension as the base case, you arrive at single elements.
So at least it's not completely unnatural.


Stefan Krah





More information about the Python-ideas mailing list