私はPython2.7.3でbytearrayタイプをいじっていて、この奇妙な振る舞いに気づきました。
コンストラクターに整数引数を渡すと、ゼロバイトで埋められた整数に等しいサイズのバイト配列が作成されます。
>>> s = bytearray(15)
>>> s
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
ただし、自分で手動で設定したバイトを使用してバイト配列を作成しようとすると、コンストラクターは作成したバイトの一部を無視/スキップするように見えます。
>>> s = bytearray(b'\x34\x78\x98\xFF\xFF')
>>> s
bytearray(b'4x\x98\xff\xff')
なぜこうなった?これはバグですか?それとも私は何かが足りないのですか? Pythonのドキュメントはあまり啓蒙的ではありません。