Pythonのbytearray関数の使い方|初期化や文字列、整数(int)をバイトに変換する方法

スポンサーリンク

今回は、Pythonの組み込み関数の1つであるPython bytearray()関数について見ていきます。

スポンサーリンク

Pythonのbytearray()関数を理解します。

Pythonには、バイトの配列を作成し、特定の反復記号または値で定義されたサイズの作成された配列のbytearrayオブジェクトを返すbytearray()メソッドが内蔵されています。

構文は以下の通りです。

bytearray(source_input, encoding_scheme, error)

パラメータ

  • source_input: オプションのパラメータです。基本的には、配列のデータ要素を初期化するために使用される。source_input はイテラブルや値などです。
  • encoding_scheme (オプション): 文字列のエンコーディングパターンを定義するために使用される。
  • error (オプション): 文字列のエンコードパターンを定義するために使用されます。エンコードに失敗した場合に取るべきアクションを定義します。

bytearray() メソッドは、リスト、文字列、タプルなどの反復記号や値を引数として受け取り、サイズを指定して配列を初期化し、そのバイト配列オブジェクトを返します。

例 Pythonのbytearray()関数(引数なし

inp = bytearray()
print(inp)

bytearray()関数に引数が渡されない場合、関数は空のbytearrayオブジェクトを返します。

出力されます。

bytearray(b'')

1. Python bytearray()関数に文字列を引数として渡した場合

bytearray()関数の引数に文字列が渡されると、文字列はバイトの配列に変換されます。

文字列がパラメータリストに渡されるときはいつでも、パラメータリストで同じエンコーディングが定義されていなければならず、そうでなければ TypeError exception が発生します。

例として以下の様になります。

inp_str = "JournalDev"
 
arr_8 = bytearray(inp_str, 'utf-8')
 
print(arr_8)

ここでは、入力文字列をバイトの配列に変換するために、encoding_schemeを ‘utf-8’ として渡しています。

出力は以下の通り。

bytearray(b'JournalDev')

例2:

inp_str = "JournalDev"
 
arr_16 = bytearray(inp_str, 'utf-16')
 
print(arr_16)

上の例では、エンコーディングのスキームを ‘utf-16’ と定義しています。

出力は

bytearray(b'xffxfeJx00ox00ux00rx00nx00ax00lx00Dx00ex00vx00')

2. Python bytearray()関数に引数として渡されたiterableの場合

bytearray() 関数の引数に list, set, tuple などの iterable を渡すと、bytearray オブジェクトの配列要素としての初期内容を含むバイト配列が返されます。

必須条件 必須条件: bytearray() 関数の引数として反復子が渡される場合、TypeError を避けるために、反復子のすべての要素が integer 型であることが必要です。

例 Python bytearray() とリスト

inp_lst = [2, 4, 6, 8]
res_byte = bytearray(inp_lst)
print(res_byte)

明確に理解されるように、リストの内容、すなわち[2,4,6,8]はbytearrayオブジェクトを作成するために使用されています。

出力は以下の通りです。

bytearray(b'x02x04x06x08')

3. Python bytearray() 関数の引数に整数値を指定した場合

bytearray()関数の引数に整数値を指定すると、size = 整数値のbytearrayオブジェクトを作成し、NULL値で初期化します(‘˶’ᵕᴗᵕ’)⁾⁾。

例えば、以下の様になります。

inp = 14
res_byte = bytearray(inp)
print(res_byte)

上記の例では、配列のサイズを ’14’ とした配列オブジェクトを作成し、NULL 値で初期化します。

結果は以下の通りです。

出力:

bytearray(b'x00x00x00x00x00x00x00x00x00x00x00x00x00x00')

概要

  • Pythonのbytearray()関数はbytearrayオブジェクトを返します。
  • bytearray()関数は、iterableやvaluesなどのパラメータを持つことができます。
  • bytearray()関数は、iterable、valuesなどをパラメータとして持つことができます。

まとめ

このように、今回は様々な種類のパラメータを持つPythonのbytearray()メソッドの動作について理解しました。


タイトルとURLをコピーしました