Datenstruktur "umdrehen"

24/01/2008 - 09:05 von Michael Schmarck | Report spam
Guten Morgen!

Ich habe hier folgende Datenstruktur:

timing_ursprung = {
"Performance Test of Item Access using Lists" => [
{"Plants" => 100, "Customers" => 50, "Total" => 150},
{"Plants" => 85, "Customers" => 60, "Total" => 140},
{"Plants" => 111, "Customers" => 77, "Total" => 188}
],
"Performance Test of Item Access using Advance Item Search" => [
{"Work List" => 17, "Total" => 42},
{"Work List" => 10, "Total" => 50},
{"Work List" => 22, "Total" => 99}
]
}

Diese möchte ich nun so automatisch umàndern, das sie so ausschaut:

timing_ziel = {
"Performance Test of Item Access using Lists" => {
"Plants" => [100, 85, 111], "Customers" => [50, 60, 77], "Total" => [150, 140, 188]
},
Performance Test of Item Access using Advance Item Search" => {
"Work List" => [17, 10, 22], "Bookmarks" => [30, 33, 27], "Total" => [42, 50, 99]
}
}

Dh. ich habe einen Hash (timing_ursprung), in welchem ein Array gespeichert
ist und da sind als Werte wieder Hashs. Die Werte (100, 50, 150, 85, ...)
sind irgendwelche Messwerte, die irgendwelchen Tests (Plants, Customers,
Total) zugeordnet sind, und dies ist wieder einem "Übertest" ("Performance
Test of Item Access using Lists") zugeordnet. Die Tests (Plants, ...) wurden
3× durchgeführt. Es wurde zuerst der "Plants" Test gemacht, dann der
"Customers" Test und am Ende der "Total" Test.

Nun möchte ich gerne die einzelnen Messergebnisse der Plants, Customers, ...
Tests zusammenfassen und in einem Array speichern. Dies habe ich versucht
im "timing_ziel" darzustellen; dort sind die Messwerte 100, 85, 11 der
einzelnen "Plants" Tests zu einem Array zusammengefasst worden, welches
zu dem Hash "Performance Test of Item Access using Lists" gehört.

In echt gibt's noch mehr Tests. Aber bei jedem Durchgang gibt's die gleichen
Tests.

Wie könnte ich die Datenstruktur nun möglichst geschickt in Ruby 1.8
"verwursten"?

Danke sehr,

Michael
 

Lesen sie die antworten

#1 Simon Krahnke
24/01/2008 - 16:26 | Warnen spam
* Michael Schmarck (09:05) schrieb:

Guten Morgen!

Ich habe hier folgende Datenstruktur:

timing_ursprung = {
"Performance Test of Item Access using Lists" => [
{"Plants" => 100, "Customers" => 50, "Total" => 150},
{"Plants" => 85, "Customers" => 60, "Total" => 140},
{"Plants" => 111, "Customers" => 77, "Total" => 188}
],
"Performance Test of Item Access using Advance Item Search" => [
{"Work List" => 17, "Total" => 42},
{"Work List" => 10, "Total" => 50},
{"Work List" => 22, "Total" => 99}
]
}

Diese möchte ich nun so automatisch umàndern, das sie so ausschaut:

timing_ziel = {
"Performance Test of Item Access using Lists" => {
"Plants" => [100, 85, 111], "Customers" => [50, 60, 77], "Total" => [150, 140, 188]
},
Performance Test of Item Access using Advance Item Search" => {
"Work List" => [17, 10, 22], "Bookmarks" => [30, 33, 27], "Total" => [42, 50, 99]
}
}



Wo kommen die Bookmark her?

timing_ziel = Hash.new { Hash.new { Array.new } }
for name, list in timing_ursprung
t = timing_ziel[name]
for name, count in list
t[name] << count
end
end

Ungestestet.

mfg, simon hth

Ähnliche fragen