On Jun 5, 11:48 am, Ivan Illarionov <[EMAIL PROTECTED]> wrote: > On 5 июн, 19:38, George Sakkis <[EMAIL PROTECTED]> wrote: > > > > > On Jun 5, 11:21 am, Ivan Illarionov <[EMAIL PROTECTED]> wrote: > > > > On 5 июн, 18:56, Ivan Illarionov <[EMAIL PROTECTED]> wrote: > > > > > On 5 июн, 18:19, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> > > > > wrote: > > > > > > On Jun 5, 3:49 pm, Ivan Illarionov <[EMAIL PROTECTED]> wrote: > > > > > > > On 5 ÉÀÎ, 01:57, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> > > > > > > wrote: > > > > > > > > Hi Everyone, > > > > > > > > i have another question. What if i wanted to make n tuples, each > > > > > > > with > > > > > > > a list of coordinates. For example : > > > > > > > > coords = list() > > > > > > > for h in xrange(1,11,1): > > > > > > > for i in xrange(1, 5, 1) : > > > > > > > for j in xrange(1, 5, 1) : > > > > > > > for k in xrange(1,2,1) : > > > > > > > coords.append((i,j,k)) > > > > > > > lista+str(h)= tuple coords > > > > > > > print tuple(coords) > > > > > > > > so that i will have tuple1, tuple2,..., tupleN, etc. I am trying > > > > > > > to do > > > > > > > it the way i show you above but it is not working properly. I > > > > > > > wish you > > > > > > > could help me with that. Thanks again, > > > > > > >>> from itertools import repeat, izip > > > > > > >>> coords = tuple((i,j,k) for i in xrange(1,5) for j in > > > > > > >>> xrange(1,5) for k in xrange(1,2)) > > > > > > >>> locals().update(("tuple%s" % i, coord) for i, coord in > > > > > > >>> izip(xrange(1,11), repeat(coords))) > > > > > > >>> tuple1 > > > > > > > ((1, 1, 1), (1, 2, 1), (1, 3, 1), (1, 4, 1), (2, 1, 1), (2, 2, 1), > > > > > > (2, > > > > > > 3, 1), (2 > > > > > > , 4, 1), (3, 1, 1), (3, 2, 1), (3, 3, 1), (3, 4, 1), (4, 1, 1), (4, > > > > > > 2, > > > > > > 1), (4, 3 > > > > > > , 1), (4, 4, 1)) > > > > > > > Does this help? > > > > > > > But I don't understand why you need this? > > > > > > > Ivan > > > > > > Hi, > > > > > > What i need is, for example: > > > > > > tuple 1=((1, 1, 1), (1, 2, 1), (1, 3, 1), (1, 4, 1)) > > > > > > tuple 2=((2, 1, 1), (2, 2, 1), (2, 3, 1), (2, 4, 1)) > > > > > > tuple 3=((3, 1, 1), (3, 2, 1), (3, 3, 1), (3, 4, 1)) > > > > > > and so on. Please help me and sorry for not taking the time to post my > > > > > questions properly. > > > > > > Victor > > > > > Or even so: > > > > > locals().update(("tuple_%s" % i, tuple((i,j,k) for j in range(1,5) for > > > > k in range(1,2))) for i in range(1,5)) > > > > > Ivan > > > > Tried to make it readable: > > > > def iter_coords(i): > > > for j in xrange(1,5): > > > for k in xrange(1,2): > > > yield i, j, k > > > > def iter_vars(): > > > for i in xrange(1, 5): > > > yield "tuple_%s" % i, tuple(iter_coords(i)) > > > > locals().update(dict(iter_vars())) > > > locals().update() works by accident here because it's in global scope; > > it doesn't work within a function. > > > Use a proper data structure, like a dict or a list, and access each > > tuple list as 'tuples[n]' instead of 'tuple_n'. > > > George > > OP wanted variables and I showed him how to do this. I agree that a > list or a dict would be better. > > Ivan
Generating variable names at runtime doesn't work for locals and it is a bad solution for globals in 99.9% of the cases. It is usually more helpful to point someone who can't even express his problem clearly to the right direction, rather than taking his pseudocode literally and coming up with a semi-working translation. George -- http://mail.python.org/mailman/listinfo/python-list