1

シリアル化された構造のシーケンスを含むバイナリ データの長いシーケンスを解析しようとしています。メモリ内のデータを整数のリストとして取得できます (これをメイン リストと呼びましょう)。

メインリストに含まれるさまざまなフィールドを解析するために、いくつかの関数とクラスを作成しています。私の質問は、メイン リストのサブ範囲をこれらの関数とクラスに渡す最も効率的な方法は何かということです。

私はPythonを初めて使用するので、本当に間違ったことを言ったら許してください。

  • 次のようなparse_foo(main_list[n:N])ことをすると、新しいリストが作成されると思います。私が間違っていなければ、この方法は非常に非効率的です。ところで、メイン リストを変更するつもりはありません。
  • イテレータ ( ) を使用できると思いますiterator.next()。しかし問題は、要素にランダムにアクセスできないことです。

コメントと提案はいつでも大歓迎です。

4

2 に答える 2

0

関数がメイン リストを取得し、開始インデックスと終了インデックスを取得するように関数を設定できます。

于 2012-11-30T16:30:48.127 に答える
0

効率を評価するには、disおよびcProfileモジュールを活用する必要があります。

ドキュメントからcProfile

python -m cProfile myscript.py

ドキュメントからdis

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              3 LOAD_FAST                0 (alist)
              6 CALL_FUNCTION            1
              9 RETURN_VALUE
于 2012-11-30T16:31:46.960 に答える