辞書のサイズ(メモリ内に占めるバイト数)を手動で計算する方法。私はそれが最初に280バイトであることを読んでいます.6番目のキーで増加し、次に86で増加します。私は10000以上のキーがあるときに占有するサイズを計算したいと思います。辞書のサイズ(バイト)
1
A
答えて
3
あなたはsys.getsizeof()
と簡単なチェック(それはバイト単位でオブジェクトのサイズを返します。)を行うことができます:あなたはPythonの辞書の実際の内部動作に興味がある場合は、dictobject.c
が決定的である
>>> import sys, itertools
>>> sys.getsizeof(dict(zip(range(1), itertools.cycle([1]))))
280
>>> sys.getsizeof(dict(zip(range(5), itertools.cycle([1]))))
280
>>> sys.getsizeof(dict(zip(range(6), itertools.cycle([1]))))
1048
>>> sys.getsizeof(dict(zip(range(85), itertools.cycle([1]))))
3352
>>> sys.getsizeof(dict(zip(range(86), itertools.cycle([1]))))
12568
>>> sys.getsizeof(dict(zip(range(87), itertools.cycle([1]))))
12568
>>> sys.getsizeof(dict(zip(range(10000), itertools.cycle([1]))))
786712
をリソース(最新のPython 3.6ブランチの場合はhere)。また、dictnotes.txt
を見てください。
5
sys.getsizeof
は、その場合には役立ちます。
from sys import getsizeof
dct = {'a': 5, 'b': 7}
print(getsizeof(dct))
は特に辞書のためのサイズは(実装が最近変更された)あなたのPythonのバージョンに依存します。
N
-sized辞書を作成する簡単な方法は次のとおりです。
from itertools import zip_longest
dct = dict(zip_longest(range(N),(), fillvalue=None))
# {0: None, 1: None, 2: None, ....}
これはあなたの特定のPythonのバージョンのためのあなたの仮定をテストするに役立つはずです。
this questionが関連している可能性があります。
0
sys.getsizeof
を使用してサイズ情報を取得してください
関連する問題
- 1. IOSの辞書サイズ
- 2. ツリーと辞書の合理的なサイズ
- 3. OAuth - Cでの辞書順バイト値の順序付け
- 4. C#辞書内の辞書
- 5. 辞書のpython辞書
- 6. ユーザー辞書のリソース辞書
- 7. 辞書内の辞書javascript
- 8. 辞書の処理辞書
- 9. 辞書辞書python
- 10. ソート辞書や辞書
- 11. 辞書を辞書にロード
- 12. サイズはバイト境界
- 13. メモリサイズが134217728バイト(許容サイズは74735240バイト)
- 14. 辞書のリスト内のPythonアクセス辞書
- 15. Python 2.7ページトリップ間の辞書の辞書
- 16. Pythonでの辞書の辞書
- 17. 辞書内の辞書を表す
- 18. スプリット複数の辞書に辞書
- 19. 辞書の散布図辞書
- 20. Pandas Groupby辞書の辞書一覧
- 21. 条件付き辞書のPython辞書
- 22. 辞書の辞書を削除する
- 23. 辞書のリストから辞書
- 24. Tensorflow辞書テンソルでの辞書検索
- 25. OOPの辞書オブ辞書ですか?
- 26. オフライン辞書用のSQLiteデータベースのサイズを見積もる
- 27. キーのユーザ入力を伴うPythonの動的辞書サイズ
- 28. C#LInqで指定されたサイズで辞書の内容を新しい辞書に移動
- 29. 辞書を考える辞書
- 30. 辞書スウィフトから辞書を取得