On 5 июн, 21:22, George Sakkis <[EMAIL PROTECTED]> wrote: > 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
Understanding of how to create variables dynamically can be good for OP's learning curve even though it's a bad solution in this particular case. I agree that it was my mistake to not point him in the right direction. Ivan -- http://mail.python.org/mailman/listinfo/python-list