4 Stimmen

Python: Wie man Tupelwerte innerhalb eines Wörterbuchs eines Wörterbuchs abruft

Ich habe ein dict von dict wie folgt eingerichtet:

from collections import namedtuple

Point = namedtuple('Point', 'r w')
mydict= {
    'user1': {'item1': Point(2.5,0.1),'item2': Point(3.5,0.6)},
    'user2': {'item1': Point(3.0,0.3), 'item3': Point(3.5,0.8)},
    'user3': {'item1': Point(2.0,0.4),'item3': Point(0.5,0.1), 'item4': Point(1.5,0.7)}
}

Ich möchte einen effizienten Weg finden, um den Durchschnitt der Werte in Point zu erhalten. d.h. Ich möchte den Durchschnitt des r-Punktwerts (point.r) für 'item3' erhalten, der (3.5+0.5)/2 beträgt.

Vielen Dank,

7voto

Ned Batchelder Punkte 342778

Sie können es so machen:

r_vals = [u['item3'].r for u in mydict.itervalues() if 'item3' in u]
if r_vals:
   r_avg = sum(r_vals)/len(r_vals)
else:
   r_avg = 0   # ???

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X