跳转到主要内容

c在collections.namedtuple中实现。

项目描述

使用C编写,用于高速的namedtuple实现。

已测试Python 3.4和3.5,以及截至3084914245d2的3.6

高速

快速的时间。

设置

使用限定导入,以便我们可以知道我们正在使用哪个namedtuple。

>>> from namedtuple import namedtuple as cnamedtuple
>>> from collections import namedtuple as stdnamedtuple
>>> from pickle import dumps, loads

小数字

可爱的图表

这些操作与字段数量成比例。

Type creation from a string of field names.

从字段名称字符串创建类型。

Type creation from a sequence of field names.

从字段名称序列创建类型。

Instance creation.

实例创建。

不那么可爱的数字

这些操作不与字段数量成比例。

std_inst 是一个具有六个命名字段(a、b、c、d、e和f)的 collections.namedtuple 创建的类型的实例。

c_inst 是一个具有六个命名字段(a、b、c、d、e和f)的 cnamedtuple.namedtuple 创建的类型的实例。

字段访问
In [1]: %timeit std_inst.c
10000000 loops, best of 3: 71.9 ns per loop

In [2]: %timeit c_inst.c
10000000 loops, best of 3: 38.4 ns per loop
Pickle往返
In [3]: %timeit loads(dumps(std_inst))
100000 loops, best of 3: 6.28 µs per loop

In [4]: %timeit loads(dumps(c_inst))
100000 loops, best of 3: 4.72 µs per loop

贡献

该项目托管在 github 上。

在提交补丁之前,请确保您的Python代码符合 PEP8 标准,并且您的C代码符合 PEP7 标准。

联系

请将所有错误报告提交到 github

对于问题或评论,请随时通过电子邮件与我联系 joe@quantopian.com

支持者