我正在我的程序中使用xyz向量。我正在使用它们,给每个人一个变量(例如offset_x,offset_y等)变得繁琐而且代码混乱。现在,我可以将每组x,y和tupples放入tupples(例如offset =(x,y,z)),但我发现像offset [0]这样的东西到处都会使代码不那么可读正如我所想,使用dict似乎效率太低。 Numpy是另一种选择,很多人都建议它,但根据Poor numpy.cross() performance发现的信息,Nunpy可能不太适合我正在处理的短阵列,而且我没有多少边缘我的脚本部分速度减慢,因为有些部分每秒运行几次。那里有什么既有效又可读?
答案 0 :(得分:2)
如果您正在寻找更易读的元组,请查看namedtuple。积分是文档中给出的示例。
Point = namedtuple('Point', ['x', 'y'])
>>> p = Point(11, y=22) # instantiate with positional or keyword arguments
>>> p[0] + p[1] # indexable like the plain tuple (11, 22)
33
>>> x, y = p # unpack like a regular tuple
>>> x, y
(11, 22)
>>> p.x + p.y # fields also accessible by name
33
>>> p # readable __repr__ with a name=value style
Point(x=11, y=22)
如果您对效率感兴趣,请查看implementation。它使用__slots__
并使用exec
进行汇编,因此与常规元组相比,它应该是最小的开销。
由于它是用Python编码的,你可以删除一些可能不必要的方法,如__repr__
,_asdict
,_replace
和__getnewargs__
,以减少占用空间