Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

create lists of unique names in a for -loop in python

I want to create a series of lists with unique names inside a for-loop and use the index to create the liste names. Here is what I want to do

x = [100,2,300,4,75]

for i in x:

  list_i=[]

I want to create empty lists such as

lst_100 = [], lst_2 =[] lst_300 = []..

any help?

like image 305
brain storm Avatar asked Feb 11 '13 20:02

brain storm


2 Answers

Don't make dynamically named variables. It makes it hard to program with them. Instead, use a dict:

x = [100,2,300,4,75]
dct = {}
for i in x:
    dct['lst_%s' % i] = []

print(dct)
# {'lst_300': [], 'lst_75': [], 'lst_100': [], 'lst_2': [], 'lst_4': []}
like image 134
unutbu Avatar answered Oct 22 '22 20:10

unutbu


Use a dictionary to hold your lists:

In [8]: x = [100,2,300,4,75]

In [9]: {i:[] for i in x}
Out[9]: {2: [], 4: [], 75: [], 100: [], 300: []}

To access each list:

In [10]: d = {i:[] for i in x}

In [11]: d[75]
Out[11]: []

And if you really want to have lst_ in each label:

In [13]: {'lst_{}'.format(i):[] for i in x}
Out[13]: {'lst_100': [], 'lst_2': [], 'lst_300': [], 'lst_4': [], 'lst_75': []}
like image 36
root Avatar answered Oct 22 '22 22:10

root