Problem mit verschachtelten Tupels in Listen in Dictionarys
Verfasst: Mittwoch 1. Oktober 2008, 11:45
Moin Moin,
mein Hirnschmalz hat grade versagt, deswegen stelle ich hier mal die Frage.
Situation:
Ich habe ein Dict mit einer Reihe an Parametern:
die Parameter sind zu Anfang alle leer.
Dann habe ich eine Liste mit Konfigurationen:
Die Logik dahinter ist, das ich eine Reihe von Parametern habe, und dann eine Reihe an csv-Dateien einlese, und dann jeweils bestimmte Parameter mit einem Wert aus einer bestimmten Spalte in der csv-Datei fülle.
So weit so klar?
Mein Problem ist jetzt das zuweisen der Werte.
Ich habe eine Funktion, die bekommt eine Konfiguration und das Parameter-Diktionary übergeben, und soll dann die entsprechende csv-Datei laden und die Werte zuweisen.
Meinem Verständnis nach müsste par[0] hier ein Verweis auf einen Parameter in parameter_list sein, und row[par[1]] müsste die entsprechende, in der config_list angegebene Spalte in der csv-Datei sein.
Leider bekomme ich so die Fehlermeldung
Lasse ich mit "par" in der for-Schleife ausgeben, kommt da z.B. (' ', 5), was ja richtig wäre, also müssten ja par[0] und par[1] die entsprechenden Werte sein. Und auch sie werden richtig ausgeben.
Warum kann ich da dann keine Zuweisung machen, und wieso steht in der Fehlermeldung was von 'tupel'? Auf das Tupel (als solches) greife ich an der Stelle ja gar nicht zu.
Kann mir da jemand helfen das hin zu bekommen?
Oder gibt es vielleicht einen viel leichteren (übersichtlicheren) Ansatz, um das zu lösen?
Danke!
r.
mein Hirnschmalz hat grade versagt, deswegen stelle ich hier mal die Frage.
Situation:
Ich habe ein Dict mit einer Reihe an Parametern:
Code: Alles auswählen
parameter_list = {
"para1" : "",
"para2" : "",
"para3" : "",
"para4": "",
...
}
Dann habe ich eine Liste mit Konfigurationen:
Code: Alles auswählen
config_list = [
{
"name" : "bla",
"file" : "hier\und\da1.csv",
...
"params" : [
(parameter_list["para1"], 5),
(parameter_list["para4"], 47),
...
]
}
...
]
So weit so klar?
Mein Problem ist jetzt das zuweisen der Werte.
Ich habe eine Funktion, die bekommt eine Konfiguration und das Parameter-Diktionary übergeben, und soll dann die entsprechende csv-Datei laden und die Werte zuweisen.
Code: Alles auswählen
reader = csv.reader(...)
for row in reader:
if <bedingungen an die Reihe sind erfüllt>
for par in params:
par[0] = row[par[1]]
Leider bekomme ich so die Fehlermeldung
Code: Alles auswählen
par[0] = row[par[1]]
TypeError: 'tuple' object does not support item assignment
Warum kann ich da dann keine Zuweisung machen, und wieso steht in der Fehlermeldung was von 'tupel'? Auf das Tupel (als solches) greife ich an der Stelle ja gar nicht zu.
Kann mir da jemand helfen das hin zu bekommen?
Oder gibt es vielleicht einen viel leichteren (übersichtlicheren) Ansatz, um das zu lösen?
Danke!
r.