2012-03-27 18 views
1

Mögliche Duplizieren:
How can I use a string with the same name of an object in Python to access the object itself?Set String als Variablenname

Ich versuche Namen einer Variablen auf das Ergebnis eines Spiels abhängig zu ändern ...

inds_EUR = [whatever] 
inds_AFR = [foo] 
inds_ASN = [other] 

pop=inds_EUR ##imagine this is the case 
for pp in ('EUR', 'AFR', 'ASN'): 
    if pp in pop: 
    paap='inds_'+str(pp)   
    break 
foos=eval(paap) 

Was ich versuche, ist, "foos" als die Liste zu diesem Ausdruck

zu setzen
matches = [item for item in inds_vcf if item in foos] 

Es funktioniert, aber nicht wissen, ob es gefährlich diese eval() verwendet Ausdruck, der hier als es bei Verwendung von Vars sein könnte() Bin ich es, den richtigen Weg zu tun?

Vielen Dank im Voraus,

peixe

+2

Warum Sie nicht über ein Wörterbuch benutzen? –

+1

Ich würde Ihnen wirklich empfehlen, sich die doppelte Frage anzusehen, denn es gibt (imho) sehr gute Kommentare und Antworten. –

+0

Ok, das werde ich tun. Danke! – peixe

Antwort

7

ein Wörterbuch verwenden:

inds = {'EUR': [whatever], 
     'AFR': [foo], 
     'ASN': [other]} 

foos = inds['EUR'] 
+0

Auch wenn ich jetzt weiß, dass dies der richtige Weg ist, werde ich mir das Duplikat ansehen. Danke, @eumiro – peixe

+0

Es ist gut, mindestens eine Antwort zu haben, sogar bei einer geschlossenen Frage. –