Creating Unique Dictionary Variables from List

Steven D'Aprano steve at REMOVE.THIS.cybersource.com.au
Wed Apr 11 19:02:42 EDT 2007


On Wed, 11 Apr 2007 21:03:20 +0200, Bruno Desthuilliers wrote:

> Greg Corradini a écrit :
>> Hello All,
>> I'm attempting to create multiple dictionaries at once, each with unique
>> variable names. The number of dictionaries i need to create depends on the
>> length of a list, which was returned from a previous function.
>> The pseudo code for this problem would be:
>> 
>> returnedlist = [x,y,z]
>> count = 0
>> for i in returnedlist:
>>        if count < len(returnedlist):
>>        # then create a dictionary (beginning with variable dic) for each i
>> with a unique name such that
>>        # my unique name would be dic + count
>> 
>> Any ideas about this?
> 
> Yes : use a dict to store your dicts:
> 
> returnedlist = [x,y,z]
> dicts = dict()
> for num, item in enumerate(returnedlist):
>     dicts['dict%s' % num] = dict()

Given that num is unique each time around the loop, what do you gain by
using 'dictN' for the key instead of just N (=num)?

returnedlist = [x,y,z]
dicts = {}
for num, item in enumerate(returnedlist):
    # presumably you would use item somewhere
    dicts[num] = {item: None}

And that suggests that storing the dicts in a dict may be unnecessary --
just put them in a list:

returnedlist = [x,y,z]
dicts = [None] * len(returnedlist)
for num, item in enumerate(returnedlist):
    dicts[num] = {item: None}



-- 
Steven.




More information about the Python-list mailing list