我在程序中大量使用xyz向量。我使用它们足够多,以至于给每个变量一个变量(例如offset_x,offset_y等)变得乏味且代码混乱。现在,我可以将每组x,y和放到tupple中(例如offset =(x,y,z)),但是我发现在各处执行诸如offset [0]之类的操作会使代码不那么可读如我所愿,使用dict似乎效率太低。 Numpy是另一种选择,很多人建议这样做,但根据Poor numpy.cross() performance处的信息,Nunpy可能不太适合我正在处理的短数组,并且我没有足够的零件余量我的脚本的速度变慢了,因为某些片段每秒运行几次。有没有什么既有效又可读的?
最佳答案
如果您要查找更具可读性的元组,请查看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__
,以进一步减少占用空间。关于python - 可读性和效率,哪个更好?块状,元组等?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6964489/