Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   Creating Unique Dictionary Variables from List (http://www.velocityreviews.com/forums/t502292-creating-unique-dictionary-variables-from-list.html)

Creating Unique Dictionary Variables from List

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

Greg

--
View this message in context: http://www.nabble.com/Creating-Uniqu....html#a9943317
Sent from the Python - python-list mailing list archive at Nabble.com.

 Bruno Desthuilliers 04-11-2007 07:03 PM

Re: Creating Unique Dictionary Variables from List

> 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
>

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()

Re: Creating Unique Dictionary Variables from List

Bruno,
Your help is much appreciated. I will give this a try tomorrow morning and
get back on how it works.

Bruno Desthuilliers wrote:
>
>> 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
>>

>
> 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()
> --
> http://mail.python.org/mailman/listinfo/python-list
>
>

--
View this message in context: http://www.nabble.com/Creating-Uniqu....html#a9947284
Sent from the Python - python-list mailing list archive at Nabble.com.

 Bruno Desthuilliers 04-11-2007 08:44 PM

Re: Creating Unique Dictionary Variables from List

> Bruno,
> Your help is much appreciated.

Then give thanks to Dennis too !-)

> I will give this a try tomorrow morning and
> get back on how it works.

Don't worry, it just works - and it's the idiomatic solution to the
problem you described.

 Steven D'Aprano 04-11-2007 11:02 PM

Re: Creating Unique Dictionary Variables from List

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
>>

>
> 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.

 Bruno Desthuilliers 04-12-2007 08:09 PM

Re: Creating Unique Dictionary Variables from List

Steven D'Aprano a écrit :
> On Wed, 11 Apr 2007 21:03:20 +0200, Bruno Desthuilliers wrote:
>
>
>>
>>>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
>>>

>>
>>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)?

The OP wanted such names, that's all.

 All times are GMT. The time now is 06:44 AM.