将子列表传递给函数的有效方法

时间:2012-11-30 16:26:57

标签: python performance list

我正在尝试解析包含一系列序列化结构的长序列二进制数据。我能够将内存中的数据作为整数列表(让我们称之为主列表)。

为了解析主列表中包含的不同字段,我正在创建一些函数&类。我的问题是将主列表的子范围传递给这些函数的最有效方法是什么?类。

我是Python新手,如果我说错了,请原谅我。

  • 如果我这样做:parse_foo(main_list[n:N])我想会创建一个新列表。如果我没错,这种方法效率很低。顺便说一下,我不打算随时修改主列表。
  • 我想我可以使用迭代器(iterator.next())。但问题是我无法随机访问这些元素。

评论&建议总是非常受欢迎。

2 个答案:

答案 0 :(得分:0)

您可以设置这些功能,以便它们获取主列表,以及开始和结束索引。

答案 1 :(得分:0)

为了评估效率,您应该使用discProfile模块。

来自cProfile docs

python -m cProfile myscript.py

来自dis docs

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              3 LOAD_FAST                0 (alist)
              6 CALL_FUNCTION            1
              9 RETURN_VALUE