私はいくつかのデータを正規化する関数を書くことを考えていました。単純なアプローチは、私は内側のインデックス上でこのdoesntの仕事を正常化したいネストされたリストとdictsのためしかし変更されたネストされたdict/listを変更します。
def normalize(l, aggregate=sum, norm_by=operator.truediv):
aggregated=aggregate(l)
for i in range(len(l)):
l[i]=norm_by(l[i], aggregated)
l=[1,2,3,4]
normalize(l)
l -> [0.1, 0.2, 0.3, 0.4]
です。私は、このようなノーマライズ機能を実装する方法
l=[[1,100],[2,100],[3,100],[4,100]]
normalize(l, ??)
l -> [[0.1,100],[0.2,100],[0.3,100],[0.4,100]]
任意のアイデアを取得したいのですが意味ですか?
は、多分それはクレイジークールは、それがこの作品を作ることは可能です
normalize(l[...][0])
書くことだろう?または他のアイデア?
リストだけでなく、dictもネストすることができます。うーん...
編集: 私はnumpyがそのような構文を提供していることを知りました。私が省略記号のトリックを自分で実装する方法は誰でも知っていますか?
作るために、任意の重要な理由のiterableの各要素は(ない場合は、以前のマージ機能を選択することで、それがより効率的に行うことができます)異なる可能性があると仮定すると新しいオブジェクトを作成するのではなく、インプレース操作ですか?それはわずかに遅くなるかもしれませんが、長期的には報われます。 – tokland