On 04/10/2013 04:40 AM, martaamu...@gmail.com wrote:
Hi!

I would like to create a list containing lists. I need each list to have a 
differente name and i would like to use a loop to name the list. But as the 
name, is a string, i cannot asign it to a value... how can I do that??


global_list=[]
for i in range (20):
   ("list_"+i)=[]   #These would be the name of the list...
   global_list.append("list_"+i)

Thank you!!!!!


The fact that the content of the outer list also happens to be lists is irrelevant to your question. I believe the real question here is how to create an arbitrary bunch of new names, and bind them to elements of he list.

In general, you can't. But more importantly, in general you don't want to. If you come up with a convoluted way to fake it, you'll have to use the same convoluted way to access those names, so there's no point. As Chris says, just reference them by index.

On the other hand, if the outer list happens to have exactly 7 elements, and you know that ahead of time, then it may well make sense to assign names to them. Not list_0 through list_6, but name, addr1, ec.

global_list = []
for i in range(7):
    global_list.append[]

first_name, mid_name, last_name, addr1, addr2, city, town = global_list

Incidentally, that's approximately what a collections.namedtuple is all about, giving names to items that are otherwise considered elements of a tuple.

--
DaveA
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to