[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()

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