はじめに
Pythonの豊富なデータ操作関数の中で、今回はbytearray関数に焦点を当てて説明します。
この関数は、バイト列(bytes)を可変にしたバージョンであり、特にバイナリデータの操作に役立ちます。
bytearray関数とは
bytearray関数はPythonの組み込み関数で、bytes型の可変版を作成するためのものです。
つまり、一度作成したバイト列を後から変更することが可能になります。
ソースコード例
1 2 |
byte_arr = bytearray(b'hello world') print(byte_arr) |
出力結果
bytearray(b'hello world')
バイト列の操作
bytearray関数で作成したオブジェクトは、その要素を後から変更することが可能です。
以下の例では、'hello world'の中の'world'を'Python'に変更しています。
ソースコード例
1 2 |
byte_arr[6:] = b'Python' print(byte_arr) |
出力結果
bytearray(b'hello Python')
bytearray関数の引数
bytearray関数は様々な型の引数を受け取ることができます。
最も一般的なのは、上記の例のようにバイト列を引数にする方法ですが、他にも整数や文字列、さらにはイテラブル(リストやタプルなど)も引数として受け取ることが可能です。
KindleUnlimited会員であれば、全ての本をご覧頂けます。 リストとラムダ式を理解すれば、Pythonプログラミングの世界が変わる 第1版
整数を引数にした場合
整数を引数にすると、その整数の数だけゼロが含まれたbytearrayオブジェクトが生成されます。
たとえば、5を引数にすると、長さ5のバイト列が作成されます。
ソースコード例
1 2 |
byte_arr = bytearray(5) print(byte_arr) |
出力結果
bytearray(b'\x00\x00\x00\x00\x00')
文字列とエンコーディングを引数にした場合
文字列を直接引数として使用する場合は、エンコーディングも一緒に指定する必要があります。
これはbytearrayがバイト列を操作するため、文字列をどのようにバイトに変換するかを知る必要があるためです。
ソースコード例
1 2 |
byte_arr = bytearray('hello world', 'utf-8') print(byte_arr) |
出力結果
bytearray(b'hello world')
イテラブルを引数にした場合
イテラブルなオブジェクト(リストやタプルなど)もbytearray関数の引数として使用できます。
ただし、リストの各要素は0~255の整数でなければなりません。
ソースコード例
1 2 |
byte_arr = bytearray([97, 98, 99, 100, 101]) print(byte_arr) |
出力結果
bytearray(b'abcde')
バイトと文字の関係
ここで注意すべきは、バイトと文字の関係です。
先ほどの例では、リストの要素がそれぞれ97, 98, 99, 100, 101となっていましたが、これはASCIIコードで'a', 'b', 'c', 'd', 'e'に対応しています。
PythonはこのASCIIコードを自動的に文字に変換するため、'abcde'と表示されました。
まとめ
Pythonのbytearray関数を利用することで、バイナリデータの操作が可能になります。
また、この関数は引数として多様な形式を受け入れることができるため、バイト列の生成や操作が柔軟に行えます。
Pythonでバイナリデータを扱う必要がある場合や、文字列を後から変更したい場合には、ぜひこのbytearray関数を利用してみてください。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!