Python不提供对多维数组的内置支持.我需要开发一个11维数组和一组函数来操作它(主要是线性代数,矢量算术).但是,不允许外部库导入.我有一个C代码,并尝试将其移植到Python:
typedef vec3_t float[3]; vec3_t Array[dim0][dim1][dim2][dim3][dim4][dim5][dim6][dim7][dim8][dim9][dim10]; Array[0][0][0][0][0][0][0][0][0][0][1] = {1.0, 0.0, 0.0};
如何有效地在Python中实现(具有良好的可读性)?
PS:最多为Python 2.5版本.
有这么多维度,并且不允许库导入,我会(作为基本选择)用于由元组索引的字典.这样,您可以获得简单索引的非常好的语法:
Array = dict() Array[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] = [1.0, 0.0, 0.0]
您可能希望将它包装在一个类中以添加除简单索引之外的功能,但是,不知道除了那之外你想要的是什么(初始化/默认?切片?迭代?等等......),它也是很难猜到.如果你可以准确地指定你想用"多维数组"做的所有事情,那么向你展示最能提供它的代码应该不难!