gpt4 book ai didi

python - 可读性和效率,哪个更好? Numpy、元组等?

转载 作者:行者123 更新时间:2023-12-01 06:08:27 27 4
gpt4 key购买 nike

我在程序中经常使用 xyz 向量。我对它们的使用已经足够多了,以至于为每个变量提供一个变量(例如 offset_x、offset_y 等)在代码方面变得乏味且困惑。现在,我可以将每组 x、y 和 放入元组中(例如 offset = (x,y,z) ),但我发现到处执行像 offset[0] 这样的操作会使代码不太可读正如我所愿,使用字典似乎效率太低。 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 - 可读性和效率,哪个更好? Numpy、元组等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6964489/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com