Pythonには、バイト列を扱うためのbytes
とbytearray
という2つのデータ型があります。これらは、順序付けられたバイトの集合をメモリ上の連続した領域に格納するために使用されます。
bytesとは
bytes
は不変のデータ型で、0から255の範囲の整数からなるイテラブル、指定したエンコーディングを使用したテキスト文字列、バッファAPIを実装する任意のオブジェクト、またはnullバイトで初期化された指定したサイズのバイトオブジェクトを構築します。
例えば、次のように使用できます:
s = b'\x01\x02\x03'
s += bytes([5]) # s = s + bytes([5])
print(s) # b'\x01\x02\x03\x05'
bytearrayとは
一方、bytearray
は可変のデータ型で、bytes
と同様の方法で使用できますが、その内容を更新(再割り当て)することが可能です。
例えば、次のように使用できます:
xs = bytearray(b'\x01\x02\x03')
xs.append(5)
print(xs) # bytearray(b'\x01\x02\x03\x05')
また、bytearray
には.extend
メソッドがあり、一度に複数のバイトを追加することができます。
xs = bytearray(b'\x01\x02\x03')
xs.extend(b'\x11\x22\x33')
print(xs) # bytearray(b'\x01\x02\x03\x11\x22\x33')
これらのデータ型を理解し、適切に使用することで、Pythonでのバイト列の操作がより効率的になります。