Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python辞書のメモリ使用量について教えてください。


辞書はいくつかのバケットで構成されています。これらの各バケットには

が含まれています
  • 現在保存されているオブジェクトのハッシュコード(使用されている衝突解決戦略のため、バケットの位置からは予測できません)
  • キーオブジェクトへのポインタ
  • 値オブジェクトへのポインタ

これは、32ビットマシンでは少なくとも12バイト、64ビットマシンでは24バイトになります。辞書は8つの空のバケットから始まります。次に、容量に達するたびにエントリ数を2倍にすることで、サイズを変更します。


  1. 例外がPythonのオブジェクトであることをどのように説明しますか?

    はい、指定されたコードでは「err」は例外オブジェクトです。 Pythonでは、すべてがオブジェクトです。そして、すべてのオブジェクトには属性とメソッドがあります。したがって、リスト、関数、タプルなどのような例外もオブジェクトです。したがって、例外にも他のオブジェクトと同様の属性があります。これらの属性は、次のように設定およびアクセスできます。基本クラスの例外があり、他のほとんどすべての例外はサブクラスです。 eが例外オブジェクトの場合、e.argsとe.messageがその属性です。 現在のPython実装では、例外はタイプ、値、トレースバックの3つの部分で構成されています。 sysモジ

  2. Python関数から辞書を返すにはどうすればよいですか?

    Python関数から辞書を返す方法はいくつもあります。以下に示すものを検討してください。 例 # This function returns a dictionary def foo():      d = dict();      d['str'] = "Tutorialspoint"      d['x']   = 50      return d print foo() 出力 {'x': 50