Python 同时迭代字典和numpy数组
是否有一种灵活的方法可以遍历对象字典,调用每个对象的成员函数并将值赋给numpy数组。我有以下成员功能代码:Python 同时迭代字典和numpy数组,python,arrays,dictionary,numpy,Python,Arrays,Dictionary,Numpy,是否有一种灵活的方法可以遍历对象字典,调用每个对象的成员函数并将值赋给numpy数组。我有以下成员功能代码: # Preallocate for Number of Objects in the dictionary newTable = numpy.zeros( self.numObj ); for item, nt in zip( self.dictTable.values(), newTable ): dt = item.CalculateDuty
# Preallocate for Number of Objects in the dictionary
newTable = numpy.zeros( self.numObj );
for item, nt in zip( self.dictTable.values(), newTable ):
dt = item.CalculateDutyCycle() * 100.0
return newTable
这不会运行,因为我对numpy数组的赋值没有正确完成。我可以使用nditer正确地完成它,但不确定如何将迭代器与字典表迭代结合起来。我正在避免使用传统的“计数器”增量来访问阵列,因为有一种更优雅的“pythonic”解决方案。如果使用
enumerate
,则不必显式增加计数器。你可以这样做:
newTable = numpy.zeros( self.numObj )
for k, item in enumerate(self.dictTable.values()):
newTable[k] = item.CalculateDutyCycle() * 100.0
如果使用
枚举
,则不必显式递增计数器。你可以这样做:
newTable = numpy.zeros( self.numObj )
for k, item in enumerate(self.dictTable.values()):
newTable[k] = item.CalculateDutyCycle() * 100.0
在这里使用
numpy
没有任何好处,因为您正在迭代一个常规的Python列表(values())。我只是做一个列表理解,然后把它转换成一个数组。你的阵型也是1d<代码>numpy在处理多维对象(与简单列表相反)时会发光
在这里使用
numpy
没有任何好处,因为您正在迭代一个常规的Python列表(values())。我只是做一个列表理解,然后把它转换成一个数组。你的阵型也是1d<代码>numpy在处理多维对象(与简单列表相反)时会发光
避免显式计数器的python方法是
enumerate
。但是字典项的枚举顺序是不确定的。避免显式计数器的python方法是enumerate
。但字典项的枚举顺序是不确定的。