假设我有一些嵌套对象(它们恰好是numpy数组但它们可能不是):
Object = numpy.array(shape = (10,10,10,10) )
OtherObject = numpy.array(shape = (10,10,10,10,10,10,10))
如果我想为位置[3,3,3,3]分配值1234.0,我可以这样做:
Object[3][3][3][3] = 1234.0
但是如果我想创建一个接受索引作为元组的函数,无论numpy数组维度如何,然后分配该值:
def AssignNestedObjectValue( Object, Key, Value ):
Object[Key] = Value
AssignNestedObjectValue( Object, (3,3,3,3), 1234.0 )
AssignNestedObjectValue( OtherObject, (3,3,3,3,7,8,9), 1234.0 )
我该如何编写该功能? (它应该适用于任意深度的嵌套对象,适用于任何嵌套对象)
注意: (显然我的例子可能有一个引用传递问题,具体取决于对象的可变性 - 假设对象总是可变的,并且不要讨论python可变和不可变的数据类型)
我真的只对修复键分配语法和处理任意键深度感兴趣