2012-03-27 6 views
1

Можно создать дубликат:
How can I use a string with the same name of an object in Python to access the object itself?Установить струна как имя переменной

Я пытаюсь изменить имя переменной в зависимости от результата матча ...

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) 

Что я пытаюсь, это установить «foos» в качестве списка, чтобы перейти к этому выражению

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

Это работает, но не знает, если это опасно использовать эту Eval выражения(), здесь, как это может быть при использовании ВАРА() Могу ли я делать это правильно?

Спасибо заранее,

Peixe

+2

Почему бы вам не использовать словарь? –

+1

Я действительно предлагаю вам взглянуть на дублированный вопрос, потому что есть (imho) очень хорошие комментарии и ответы. –

+0

ОК, Вот что я сделаю. Спасибо! – peixe

ответ

7

Используйте словарь:

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

foos = inds['EUR'] 
+0

Даже если теперь я знаю, что это путь, я посмотрю на дубликат. Спасибо, @eumiro – peixe

+0

Хорошо иметь хотя бы один ответ, даже по закрытому вопросу. –