Python | リストのデータサイズをバイト単位で取得する方法

2023-02-26Python リスト,Python

Python | リストのデータサイズをバイト単位で取得する方法

Pythonの「sys」モジュールのgetsizeof()関数を使ってリストのデータサイズをバイト単位で取得する方法とサンプルコードを紹介しています。

確認環境

Windows11 ローカル
Python python-3.11.1

リストのデータサイズをバイト単位で取得する

Pythonでリストのデータサイズをバイト単位で取得するには「sys」モジュールのgetsizeof()関数が利用可能です。
getsizeof()関数は第一引数にデータサイズを取得したいリストを指定します。
この関数は取得したデータサイズをbyte単位で返します。

サンプルコードでは、以下の流れでリストのデータサイズを取得しています。

  1. sysモジュールのインポート
  2. データサイズを取得するリストを用意
  3. getsizeof()関数でリストのデータサイズを取得
  4. 必要な場合、KB単位に変換する

以下のサンプルコードでは、指定したリストからgetsizeof()関数でデータサイズ「104」バイトを取得しています。

import sys
data_list = [60, 80, 10, 40, 50, 10]

# リストのデータサイズを取得する
data_size = sys.getsizeof(data_list)

print(data_size)
# 104

取得したデータサイズの単位をByteからKBに変換する場合は以下のような方法があります。

下記サンプルコードでは1KBを1024バイトとして計算し、round()関数で少数以下2位以降を切り捨てています。

import sys
data_list = [60, 80, 10, 40, 50, 10]

# リストのデータサイズを取得する
data_size = sys.getsizeof(data_list)
# byteをKBに変換して小数点以下2位に四捨五入する
data_size = round(data_size / 1024, 2)

print(data_size)
# 0.1

sys.getsizeof()関数についてもメモ

  • この関数で空のリストを取得した場合、56byteが返ってきます。
  • この関数はオブジェクトのメモリ使用量を正確に返す訳ではありません。
  • 別の方法で構築されたオブジェクトのデータサイズは値が異なる場合があります。