-2

私は異なる辞書を持っています:

    p1 = {'pair1': ([2, 3, 4], [5, 6, 7])}
    p2 = {'pair2': ([9, 10, 11], [12, 13, 14])}
    p3 = {'pair3': ([12, 20, 30], [17, 8, 30])}

私は(保存された結果で)計算したいと思います:

    p1['mean']=np.mean(p1['pair1']) 
    print p1
    {'pair1': ([2, 3, 4], [5, 6, 7]), 'mean': 4.5}

ペア 1、ペア 2、ペア 3、ペア 4 ごとに平均を計算し、結果を保存する関数を定義したいと思います。

結果を取得することは難しくありません。結果を各辞書に保存したいと思います..何時間も試してみましたが、うまくいきませんでした

4

2 に答える 2

0

現在書かれている質問の問題点は、pair1辞書ごとに異なるため、関数がキー名を知る方法がないことです。

pairすべての辞書のように、一貫したキー名を使用できます。

p1 = {'pair': ([2, 3, 4], [5, 6, 7])}
p2 = {'pair': ([9, 10, 11], [12, 13, 14])}
p3 = {'pair': ([12, 20, 30], [17, 8, 30])}

def find_and_set_mean(a_dictionary):
    a_dictionary['mean']=np.mean(a_dictionary['pair']) 

find_and_set_mean(p1)
find_and_set_mean(p2)
find_and_set_mean(p3)

与える:

{'pair': ([2, 3, 4], [5, 6, 7]), 'mean': 4.5}
{'pair': ([9, 10, 11], [12, 13, 14]), 'mean': 11.5}
{'pair': ([12, 20, 30], [17, 8, 30]), 'mean': 19.5}

しかし、より良い解決策は、これをオブジェクトとして整理することです。

class PairObject(object):

    def __init__(self, _part1, _part2):
        self.part1 = _part1
        self.part2 = _part2

    def pair(self):
        return (self.part1, self.part2)

    def mean(self):
        return np.mean((self.part1, self.part2)) 

# Then use it like this:    
p1 = PairObject([2, 3, 4], [5, 6, 7])
p1.pair() # returns ([2, 3, 4], [5, 6, 7])
p1.mean() # returns 4.5
于 2013-10-03T20:26:17.773 に答える