New submission from Timothy Pederick <[email protected]>:
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 <[email protected]>
<http://bugs.python.org/issue8662>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com