将字符串设置为变量名称

时间:2012-03-27 11:11:57

标签: python string eval

  

可能重复:
  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()表达式是否危险,这里可能是因为它可能是使用vars() 我是以正确的方式做到的吗?

提前致谢,

PEIXE

1 个答案:

答案 0 :(得分:7)

使用字典:

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

foos = inds['EUR']