すべてはオブジェクトです
Python では、あらゆる種類の定数と変数、整数、ブール値、さらには関数も含めて、すべてがオブジェクトです。 stackoverflow の質問を参照してください。ruby のような Python のすべてのオブジェクトですか
コードで確認できます:
# Python のすべてのものが object def fuction(): return print isinstance(True, object) print isinstance(0, object) ) print isinstance('a', object) print isinstance(fuction, object)
計算方法
Pythonでは、Pythonオブジェクトのサイズを計算するための関数getsizeofがsysモジュールに用意されています。
sys.getsizeof(object[, default]) 以字节(byte)为单位返回对象大小。 这个对象可以是任何类型的对象。 所以内置对象都能返回正确的结果 但不保证对第三方扩展有效,因为和具体实现相关。 ...... getsizeof() 调用对象的 __sizeof__ 方法, 如果对象由垃圾收集器管理, 则会加上额外的垃圾收集器开销。
もちろん、オブジェクトのメモリ使用量は Python のバージョンとオペレーティング システムのバージョンに密接に関係しています。この記事のコードとテスト結果は Windows7 32 ビット オペレーティング システムに基づいています。
import sys print sys.version
2.7.2 (デフォルト、2011年6月24日12:21:10) [MSC v.1500 32 bit (Intel)]
基本型
•Boolean
print 'サイズTrue のサイズ: %d' % (sys.getsizeof(True)) print 'False のサイズ: %d' % (sys.getsizeof(False))
出力:
True のサイズ: 12 False のサイズ: 12
•整数型
# 通常の整数 print '整数のサイズ: %d' % (sys.getsizeof(1)) # long print 'long 整数のサイズ: %d' % (sys.getsizeof(1L)) print '大きな長整数のサイズ: %d' % (sys.getsizeof(100000L)) 出力:
整数のサイズ: 12x 長整数 1L のサイズ: 14 長整数 100000L のサイズ: 16
整数の占有 12 がわかります。長整数は少なくとも 14 バイトを占有し、桁数が増加するにつれて占有されるスペースも大きくなります。 バージョン 2.x では、整数型の値が sys.maxint を超えると、自動的に長整数に拡張されます。 Python 3.0 以降、整数と長整数は 1 つの型に統合されます。
•浮動小数点型
print 'floatのサイズ: %d' % (sys.getsizeof(1.0))
出力:
floatのサイズ: 16
浮動小数点型は16バイトを占有します。一定の精度を超える場合は四捨五入されます。
次のコードを参照してください:
print 1.00000000003 print 1.000000000005
出力:
1.00000000003 1.00000000001
•String
# 文字列型のサイズ print 'rn'.join([" %d 文字の文字列のサイズ: %d" % (len(elem), sys.getsizeof(elem)) for elem in ["", "a", "ab"]]) # Unicode 文字列のサイズ print 'rn'.join(["size %d 文字の Unicode 文字列: %d" % (len(elem), sys.getsizeof(elem)) for elem in [u"", u"a", u"ab"]])
出力:
0 文字の文字列のサイズ: 21 1 文字の文字列のサイズ: 22 2 文字の文字列のサイズ: 23 0 文字の Unicode 文字列のサイズ: 26 1 文字の Unicode 文字列のサイズ: 28 2 文字の Unicode 文字列のサイズ: 30
通常の空の文字列は 21 バイトを占め、追加の文字はさらに 1 バイトを占めます。 Unicode 文字列は最小 26 バイトを占有し、追加の文字ごとにさらに 2 バイトを占有します。
コレクション型
•List
# リスト型のサイズ print 'rn'.join(["%d 要素を含むリストのサイズ: %d" % (len(elem), sys.getsizeof(elem)) for elem in [[], [0], [0,2], [0,1,2]]])
出力:
要素 0 のリストのサイズ: 36 要素 1 のリストのサイズ: 40 2 つの要素を持つリストのサイズ: 44 3 つの要素を持つリストのサイズ: 48
リストは少なくとも 36 バイトを占め、追加の要素ごとに 4 バイトずつ増加することがわかります。ただし、sys.getsizeof 関数はコンテナー タイプの要素サイズを計算しないことに注意してください。例:
print '3 つの整数 %d を含むリストのサイズ' % (sys.getsizeof([0,1,2])) print '3 つの文字列 %d を含むリストのサイズ' % (sys.getsizeof([' 0 ','1','2']))
出力:
3 つの整数を含むリストのサイズ 48 3 つの文字列を含むリストのサイズ 48
コンテナに保存されるものは要素への参照である必要があります。コンテナを正確に計算したい場合は、再帰的な sizeof レシピを参照できます。与えられる total_size 関数を使用します:
print '3 つの整数 %d を含むリストの合計サイズ' % (total_size([0,1,2])) print '3 つの文字列を含むリストの合計サイズ %d' % (total_size ( ['0','1','2']))
出力は次のとおりです:
3 つの整数を含むリストの合計サイズ 84 3 つの文字列を含むリストの合計サイズ 114
リストは基本的なスペース 36 + (オブジェクト参照 4 + オブジェクト サイズ) * 要素の数です。
また、リスト変数を宣言すると、要素を追加する際の効率を上げるためにスペースが事前に割り当てられることにも注意してください:
li = [] for i in range(0, 101): print 'list with %d integers size : %d, total_size: %d' % (i, getsizeof(li), total_size(li)) li.append(i)
•タプル
は基本的にリストに似ていますが、少なくとも28文字必要ですお祭り。
•辞書
もちろん、辞書の状況は比較的複雑です。詳細については、コード dictobject.c を参照してください。さらに、「辞書の最適化に関する注意」を注意深く読む必要があります。
基本的な状況については、[stackoverflow] の質問 Python の辞書の基礎となるハッシュ データ構造に関するいくつかの回答を参照できます。
• 辞書の最小スペースは 8 エントリ (PyDict_MINSIZE) です。
• エントリ数が 50,000 未満の場合、毎回 4 倍に増加します。
• エントリ数が 50,000 を超える場合は、増加します。毎回 2 回;
• キーのハッシュ値は辞書にキャッシュされます。辞書はサイズ変更後に再計算されません。
辞書は 2/3 に近づくたびにサイズ変更されます。
上記の Python オブジェクトのメモリ使用量は、エディターによって共有されたすべての内容です。参考にしていただければ幸いです。また、PHP 中国語 Web サイトもサポートしていただければ幸いです。
Python オブジェクトのメモリ使用量に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

このチュートリアルでは、Pythonを使用してZIPFの法則の統計的概念を処理する方法を示し、法律の処理時にPythonの読み取りおよび並べ替えの効率性を示します。 ZIPF分布という用語が何を意味するのか疑問に思うかもしれません。この用語を理解するには、まずZIPFの法律を定義する必要があります。心配しないでください、私は指示を簡素化しようとします。 ZIPFの法則 ZIPFの法則は単に意味します。大きな自然言語のコーパスでは、最も頻繁に発生する単語は、2番目の頻繁な単語のほぼ2倍の頻度で表示されます。 例を見てみましょう。アメリカ英語の茶色のコーパスを見ると、最も頻繁な言葉は「thであることに気付くでしょう。

この記事では、Pythonライブラリである美しいスープを使用してHTMLを解析する方法について説明します。 find()、find_all()、select()、およびget_text()などの一般的な方法は、データ抽出、多様なHTML構造とエラーの処理、および代替案(SEL

ノイズの多い画像を扱うことは、特に携帯電話や低解像度のカメラの写真でよくある問題です。 このチュートリアルでは、OpenCVを使用してPythonの画像フィルタリング手法を調査して、この問題に取り組みます。 画像フィルタリング:強力なツール 画像フィルター

PDFファイルは、クロスプラットフォームの互換性に人気があり、オペレーティングシステム、読み取りデバイス、ソフトウェア間でコンテンツとレイアウトが一貫しています。ただし、Python Plansing Plain Text Filesとは異なり、PDFファイルは、より複雑な構造を持つバイナリファイルであり、フォント、色、画像などの要素を含んでいます。 幸いなことに、Pythonの外部モジュールでPDFファイルを処理することは難しくありません。この記事では、PYPDF2モジュールを使用して、PDFファイルを開き、ページを印刷し、テキストを抽出する方法を示します。 PDFファイルの作成と編集については、私からの別のチュートリアルを参照してください。 準備 コアは、外部モジュールPYPDF2を使用することにあります。まず、PIPを使用してインストールします。 ピップはpです

このチュートリアルでは、Redisキャッシングを活用して、特にDjangoフレームワーク内でPythonアプリケーションのパフォーマンスを向上させる方法を示しています。 Redisのインストール、Django構成、およびパフォーマンスの比較をカバーして、Beneを強調します

この記事では、深い学習のためにTensorflowとPytorchを比較しています。 関連する手順、データの準備、モデルの構築、トレーニング、評価、展開について詳しく説明しています。 特に計算グラップに関して、フレームワーク間の重要な違い

データサイエンスと処理のお気に入りであるPythonは、高性能コンピューティングのための豊富なエコシステムを提供します。ただし、Pythonの並列プログラミングは、独自の課題を提示します。このチュートリアルでは、これらの課題を調査し、グローバルな承認に焦点を当てています

このチュートリアルでは、Python 3にカスタムパイプラインデータ構造を作成し、機能を強化するためにクラスとオペレーターのオーバーロードを活用していることを示しています。 パイプラインの柔軟性は、一連の機能をデータセットに適用する能力にあります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
