ich eine Liste der Wörterbücher der folgende Form haben:Python Summenwerte der Liste der Wörterbücher, wenn zwei anderen Schlüsselwertepaare entsprechen
lst = [{"Name":'Nick','Hour':0,'Value':2.75},
{"Name":'Sam','Hour':1,'Value':7.0},
{"Name":'Nick','Hour':0,'Value':2.21},
{'Name':'Val',"Hour":1,'Value':10.1},
{'Name':'Nick','Hour':1,'Value':2.1},
{'Name':'Val',"Hour":1,'Value':11},]
Ich möchte für eine bestimmte alle Werte für einen Namen summieren können, Stunde, z Wenn Name == Nick and Hour == 0
, möchte ich Wert geben Sie mir die Summe aller Werte, die die Bedingung erfüllen. 2.75 + 2.21
, nach dem obigen Stück.
Ich habe bereits folgendes versucht, aber es hilft mir nicht mit beiden Bedingungen.
finalList = collections.defaultdict(float)
for info in lst:
finalList[info['Name']] += info['Value']
finalList = [{'Name': c, 'Value': finalList[c]} for c in finalList]
Dieser fasst alle Werte für ein bestimmtes Name
auf, die Überprüfung nicht, wenn die Hour
das gleiche ist. Wie kann ich diese Bedingung in meinen Code integrieren?
Meine erwartete Ausgabe:
finalList = [{"Name":'Nick','Hour':0,'Value':4.96},
{"Name":'Sam','Hour':1,'Value':7.0},
{'Name':'Val',"Hour":1,'Value':21.1},
{'Name':'Nick','Hour':1,'Value':2.1}...]
'Summe (d [‚Value‘] für d in lst wenn d ['Name'] == 'Nick' und d ['Hour'] == 0) ' – Julien
Überprüfen Sie die Änderungen bitte. Ich will es für alle Stunden und für alle Namen tun, danke :) – Blabber
Siehe meine neue Antwort. – Julien