Pythonでタプルのサイズ(バイト数)を取得する方法
Pythonでタプルがメモリ上で占めるサイズ(バイト数)を調べたい場合は、sysモジュールのgetsizeof()メソッドを使用します。このメソッドは、指定したオブジェクトのメモリ消費量をバイト単位で返してくれます。
以下に具体的な使用例を示します。
サンプルコード
import sys
tuple_1 = ("A", 1, "B", 2, "C", 3)
tuple_2 = ("Java", "Lee", "Code", "Mark", "John")
tuple_3 = ((1, "Bill"), (2, "Ant"), (3, "Fox"), (4, "Cheetah"))
print("1つ目のタプル:")
print(tuple_1)
print("2つ目のタプル:")
print(tuple_2)
print("3つ目のタプル:")
print(tuple_3)
print("1つ目のタプルのサイズ:" + str(sys.getsizeof(tuple_1)) + " バイト")
print("2つ目のタプルのサイズ:" + str(sys.getsizeof(tuple_2)) + " バイト")
print("3つ目のタプルのサイズ:" + str(sys.getsizeof(tuple_3)) + " バイト")
実行結果
1つ目のタプル:
('A', 1, 'B', 2, 'C', 3)
2つ目のタプル:
('Java', 'Lee', 'Code', 'Mark', 'John')
3つ目のタプル:
((1, 'Bill'), (2, 'Ant'), (3, 'Fox'), (4, 'Cheetah'))
1つ目のタプルのサイズ:96 バイト
2つ目のタプルのサイズ:88 バイト
3つ目のタプルのサイズ:80 バイト
コードの解説
まず、メモリサイズを取得するために必要な
sysモジュールをインポートします。次に、文字列と数値が混在したタプル、文字列のみのタプル、さらにタプルを要素として持つネストされたタプルという、異なる構成の3つのタプルを定義し、それぞれコンソールに表示します。
各タプルに対して
sys.getsizeof()メソッドを呼び出し、その結果を文字列に変換してバイト数としてコンソールに出力します。
なお、getsizeof()が返すのはタプル自体が占めるメモリ量であり、要素として格納されている個々のオブジェクト(文字列や数値など)が別途消費しているメモリは含まれない点に注意が必要です。また、実行環境やPythonのバージョンによって、返されるバイト数は多少異なる場合があります。
-
Pythonで行列の転置を求めるプログラム
この記事では、与えられた問題に対する解法とアプローチについて詳しく解説します。 問題文 ある行列が与えられたとき、その転置を同じ行列に格納し、結果を表示する必要があります。 行列の転置とは、行を列に、列を行に入れ替えたものです。言い換えれば、行列Aの転置は、要素A[i][j]をA[j][i]と入れ替えることで得られます。 実装例 N = 4 def transpose(A): for i in range(N): for j in range(i+1, N): A[i][j], A[j][i] = A[j][i], A[i][j] # ドライ
-
Pythonで配列(リスト)の合計を求める方法をわかりやすく解説
この記事では、配列(リスト)の合計値を求めるという問題に対して、Pythonでの解決策とアプローチをわかりやすく解説します。 問題の定義 配列が入力として与えられたとき、その配列に含まれるすべての要素の合計を計算することを目標とします。 例えば、[1, 2, 3, 4, 5] という配列が与えられた場合、出力は 15 になります。 アプローチ1:ループを使った素朴な方法(総当たり法) 最も基本的な方法は、リストを先頭から順に走査し、各要素を合計用の変数に加算していくやり方です。手順は以下の通りです。 合計を格納する変数を 0 で初期化します。 for ループでリストの各要素を取り出し、順番に