Creating new variables in loop, with names from list, in Python

24,601

Solution 1

I think dictionaries are more suitable for this purpose:

>>> name = ['mike', 'john', 'steve']   

>>> age = [20, 32, 19] 

>>> dic=dict(zip(name, age))

>>> dic['mike']
20
>>> dic['john']
32

But if you still want to create variables on the fly you can use globals()[]:

>>> for x,y in zip(name, age):
    globals()[x] = y


>>> mike
20
>>> steve
19
>>> john
32

Solution 2

You can use globals():

globals()[e] = age[index]

Generally, though, you don't want to do that; a dictionary is much more convenient.

people = {
    'mike': 20,
    'john': 32,
    'steve': 19
}
Share:
24,601
user1496868
Author by

user1496868

Updated on June 09, 2020

Comments

  • user1496868
    user1496868 almost 4 years

    How to create new variables with names from list? This:

    name = ['mike', 'john', 'steve']   
    age = [20, 32, 19]  
    index = 0
    
    for e in name:
        name[index] = age[index]
        index = index+1
    

    of course does not work. What should I do?

    I want to do this:

    print mike
    >>> 20
    
    print steve
    >>> 19