2017-06-13 5 views
1

In meiner Anforderung erstellt die Liste dynamisch mit Sammlung von Wörterbüchern mit verschiedenen Spalten für jedes Mal. Also jedes Mal, was ich drucken muss, wird basierend auf der Logik etwas anders sein.Variable Variable Wert in Python

Wenn ich wenn ..else Anweisung für jeden Fall erstelle, kann ich drucken, was auch immer ich will.

Hier habe ich zu viele Fälle, also möchte ich nicht so viele schreiben, wenn ... esle Anweisungen nur zu drucken.

Stattdessen möchte ich lesen, was ich aus einer Konfigurationsdatei drucken muss und den tatsächlichen Wert drucken.

Beispiel: list1 = [{'name': 'xyz', 'Alter': 22, 'Ort': 'huj'}, {'Name': 'hjhd', 'Alter': 44, ' Ort‘: 'wer'}]

wollen nur ein, wenn else-Anweisung ich will

the following code will do my work. 
if id == 1: 
    for i in list1: 
     i['name']+","+i['age'] 
elif id == 2: 
    for i in list1: 
     i['account']+","+i['spend'] 
elif id == 3: 
    for i in list1: 
     i['percentage']+","+i['rank'] 

Spalten Name und Alter drucken nur schreiben, da ich mehr als 100 Fälle haben

statt.. Wenn ich diese vielen if else-Anweisungen schreibe, gibt es eine andere Möglichkeit, dies zu umgehen, indem ich ConfigParser oder etwas anderes verwende.

Antwort

2

Wie wäre es damit:

x = ["name", "age"] 
for i in list1: 
    for k in x: 
     print list1[i][k] 
+0

ich geantwortet hätte das gleiche, obwohl die Frage ist wirklich unklar :) – RaphaMex

+0

Ich stimme zu. Mit "Variable" nehme ich an, dass "x" tatsächlich programmatisch irgendwo eingestellt ist ... Wenn es fest ist, dann ist @ Hughs Antwort wahrscheinlich besser. – Scott

+0

Scott - Ich speichere in einer Datei, was alles gedruckt werden muss. In Datei i ['Name'] + "," + i ['Alter'] - werde ich dort lesen und in einer Variablen speichern und ich möchte das – user374374

5

Sie Druck wie

Formatierung verwenden können
for entry in list1: 
    print("{name}, {age} ({place})".format(**entry)) 
+0

Echt edel! Gute! – Ding

0

ich auch die Frage ziemlich verwirrt bin, aber hier ist eine weitere Option

list1=[{'name': 'xyz', 'age' : 22, 'place' : 'huj'}, {'name' : 'hjhd", 'age' : 44, 'place' : 'wer'}] 

key1 = "name" 
key2 = "age" 
key3 = "place" 

x = [li[key1] + li[key2] + li[key3] for li in list1] 
print x 
+0

Deric, In meiner Anforderung wird die Liste dynamisch mit einer Sammlung von Wörterbüchern mit verschiedenen Spalten erstellt. Also jedes Mal, was ich drucken muss, wird basierend auf der Logik etwas anders sein. Wenn ich eine .else-Anweisung für jeden Fall erstelle, kann ich drucken, was immer ich will. Hier habe ich zu viele Fälle, also möchte ich nicht so viele schreiben, wenn ... esle Aussagen nur zum Drucken. Stattdessen möchte ich lesen, was ich aus einer Konfigurationsdatei drucken muss und den tatsächlichen Wert drucken. Zum Beispiel möchte ich hier Name und Alter drucken. Die Parameter, die ich aus der Konfigurationsdatei lesen möchte und den tatsächlichen Wert ausdrucke. – user374374