Python では、8 ビットの文字列を処理するために文字列をバイト化しようとしています。バイト文字列は、文字列のような方法で必要な動作ではないことがわかりました。添え字を使用すると、長さ 1 のバイト文字列ではなく数値が返されます。
In [243]: s=b'hello'
In [244]: s[1]
Out[244]: 101
In [245]: s[1:2]
Out[245]: b'e'
これは、私がそれを繰り返すときに本当に難しくなります。たとえば、このコードは文字列では機能しますが、バイト文字列では失敗します。
In [260]: d = {b'e': b'E', b'h': b'H', b'l': b'L', b'o': b'O'}
In [261]: list(map(d.get, s))
Out[261]: [None, None, None, None, None]
これにより、Python 2 の一部のコードが壊れます。また、この不規則性は非常に不便だと思います。バイト文字列で何が起こっているのか、誰にも洞察がありますか?