2

オブジェクトのディクショナリを反復処理し、各オブジェクトのメンバー関数を呼び出して値を 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.CalculateDutyCycle() * 100.0


    return newTable    

numpy 配列への割り当てが正しく行われていないため、これは実行されません。nditer を使用して正しく実行できますが、その反復子を辞書テーブルの反復と組み合わせる方法がわかりませんでした。配列にアクセスするために従来の「カウンター」インクリメントを避けていましたが、よりエレガントな「pythonic」ソリューションがあります。

4

2 に答える 2

3

を使用する場合は、カウンターを明示的にインクリメントする必要はありませんenumerate。次のようなことができます。

newTable = numpy.zeros( self.numObj )
for k, item in enumerate(self.dictTable.values()):
    newTable[k] = item.CalculateDutyCycle() * 100.0
于 2013-10-07T15:06:51.230 に答える