Python 3では、bytesbytearrayという2つのデータ型があります。これらはどちらもバイトの配列を保持しますが、その使い方には重要な違いがあります。

bytesとは

bytesはイミュータブル(変更不可能)なデータ型で、一度作成するとその要素を変更することはできません。bytesオブジェクトは以下のように構築することができます。

>>> bytes(5)
b'\\x00\\x00\\x00\\x00\\x00'
>>> bytes([116, 117, 118])
b'tuv'
>>> b'tuv'
b'tuv'
>>> bytes('tuv', 'utf-8')
b'tuv'
>>> 'tuv'.encode('utf-8')
b'tuv'

bytearrayとは

一方、bytearrayはミュータブル(変更可能)なデータ型で、要素を自由に変更することができます。bytearrayオブジェクトは以下のように構築することができます。

>>> bytearray(5)
bytearray(b'\\x00\\x00\\x00\\x00\\x00')
>>> bytearray([116, 117, 118])
bytearray(b'tuv')
>>> bytearray('tuv', 'utf-8')
bytearray(b'tuv')

bytesとbytearrayの違い

bytesbytearrayの主な違いは、bytesがイミュータブルであるのに対し、bytearrayはミュータブルであるということです。これは、bytesオブジェクトは一度作成するとその要素を変更することができないのに対し、bytearrayオブジェクトは要素を自由に変更することができるという意味です。

また、bytesbytearrayは、文字列をエンコードおよびデコードする関数を提供しています。

まとめ

Pythonのbytesbytearrayは、どちらもバイトの配列を保持するデータ型ですが、その使い方には重要な違いがあります。bytesはイミュータブルで、一度作成するとその要素を変更することはできません。一方、bytearrayはミュータブルで、要素を自由に変更することができます。これらの違いを理解することで、Pythonプログラミングがより効率的になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です