[New-bugs-announce] [issue8662] bytes join cannot join bytes
Timothy Pederick
report at bugs.python.org
Sat May 8 18:50:50 CEST 2010
New submission from Timothy Pederick <pederick at gmail.com>:
This code behaves as expected:
>>> ' '.join('cat')
'c a t'
This code does not:
>>> b'\x00'.join(b'cat')
Traceback (most recent call last):
...
b'\x00'.join(b'cat')
TypeError: sequence item 0: expected bytes, int found
Instead, you have to do something like this:
>>> b'\x00'.join(bytes((i,)) for i in b'cat')
b'c\x00a\x00t'
The cause is that indexing a bytes object gives an int, not a bytes. I know, it's as designed, PEP 3137, etc. But in this specific instance, it causes Python to behave inconsistently (bytes vs. str) and unintuitively (to me, anyway).
(Same problem with bytes or bytearray in either position.)
----------
files: joinerror.py
messages: 105317
nosy: perey
priority: normal
severity: normal
status: open
title: bytes join cannot join bytes
type: behavior
versions: Python 3.1
Added file: http://bugs.python.org/file17262/joinerror.py
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue8662>
_______________________________________
More information about the New-bugs-announce
mailing list