Hi !
Ich habe folgendes in einem Skript bei welchem ich eine Funktion hinzufügen möchte in einem Array/JSON Objekt:
repr(Interfaces.log_manager.job_log[user_id])):
{
'3f2': ('3', 0.0078125, 1405595247.855199),
'3f1': ('3', 0.00390625, 1405595247.855164),
'3ed': ('2', 0.0078125, 1405595227.65275),
'3ec': ('2', 0.00390625, 1405595202.852576),
'3eb': ('2', 0.00390625, 1405595202.852538)
}
Ich möchte nun durch das Array bzw. das Objekt walken und den zweiten Wert zusammen rechnen, in PHP wäre es also soetwas wie z.B.
meinobjekt = Interfaces.log_manager.job_log[user_id]
foreach (meinobjekt as key) // durch jede zeile "walken"
gesamtzwei = gesamtzwei + key[1]
gesamtzwei soll dann die ganzen 0.00.. werte zusammengerechnet enthalten.
Weiterhin benötige ich den ersten und den letzten Werte des Timestamps, also eigentlich sowas wie
key[0][0] und max(key[0]) um eine Zeitspanne ausrechnen zu können.
In PHP recht easy.. in Python leider keine Idee..
Wäre super wenn mir jemand nen Tipp geben könnte
Objekt bearbeiten
- pillmuncher
- User
- Beiträge: 1484
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
ad 1)
ad 2) dicts haben keine inhärente Ordnung, deswegen haben sie auch kein erstes oder letztes Element. Falls das erste Element dasjenige mit dem kleinsten Key und das letzte das mit dem größten Key sein soll, dann geht sowas:Vielleicht willst du aber auch das hier (denn mir ist nicht recht klar, was du möchtest):
Code: Alles auswählen
>>> data = {
... '3f2': ('3', 0.0078125, 1405595247.855199),
... '3f1': ('3', 0.00390625, 1405595247.855164),
... '3ed': ('2', 0.0078125, 1405595227.65275),
... '3ec': ('2', 0.00390625, 1405595202.852576),
... '3eb': ('2', 0.00390625, 1405595202.852538)
... }
>>>
>>> sum(b for a, b, c in data.values())
0.02734375
Code: Alles auswählen
>>> data[min(data)]
('2', 0.00390625, 1405595202.852538)
>>> data[max(data)]
('3', 0.0078125, 1405595247.855199)
Code: Alles auswählen
>>> min(c for a, b, c in data.values())
1405595202.852538
>>> max(c for a, b, c in data.values())
1405595247.855199
In specifications, Murphy's Law supersedes Ohm's.