2

次のような辞書を受け取る関数を構築するにはどうすればよいですか:-

dic = {'a':0.4, 'b':0.2, 'c':0.1, 'd':0.5}

およびリストのリスト:-

l = [['a','red',1],['c','green', 4],['b','blue', 5]]

リストの文字を辞書にマッピングし、次のように正規化された値を返すことができるようにします。

result = sqrt((0.4^2) + (0.1^2) + (0.2^2))

これは私の試みです:

from numpy.linalg import norm
def normalizing(dic, l1):
    result = []
    for i in dic:
        if i in l1:
            result.append(dic[i])
    return norm(result)

0.0 を返す

あなたの助けは大歓迎です!

4

3 に答える 3

0
dic =  {'a': 0.4, 'c': 0.1, 'b': 0.2, 'd': 0.5}
l = [['a', 'red', 1], ['c', 'green', 4], ['b', 'blue', 5]]

import math

def normalizing(dic, l):
    result = []
    for i in dic:
        if i in [j[0] for j in l]:
            result.append(dic[i])

    print result #[0.4, 0.1, 0.2]
    return math.sqrt(sum(k*k for k in result))

結果 :-

>>>normalizing(dic, l)
0.45825756949558405
于 2013-08-30T13:08:21.770 に答える