Tim Chase <[EMAIL PROTECTED]> wrote: ... > >>> all = [(x==255 or y==255) and (255, 255) or (x,y) for (x,y) > in itertools.izip(a1,a2)] > >>> b1 = [x[0] for x in all] > >>> b2 = [x[1] for x in all] > >>> a1, a2 = b1, b2 # if you want them to replace the originals > > Seems to do what I understand that you're describing using "no" > loops (other than those implied by list comprehension).
Yep, but the performance cost of the for-loops in the comprehension is essentially the same as for such loops written "normally". > There may be some nice pythonic way to "unzip" a list of tuples > created by zip() but I couldn't scare up such a method, and Perhaps what you have in mind is: >>> a=zip('feep','grol') >>> a [('f', 'g'), ('e', 'r'), ('e', 'o'), ('p', 'l')] >>> zip(*a) [('f', 'e', 'e', 'p'), ('g', 'r', 'o', 'l')] But this wouldn't help the OP all that much with his performance problems with large 2-D arrays (though it required some guessing to gauge that it _was_ Numeric arrays that he was dealing with;-), Alex -- http://mail.python.org/mailman/listinfo/python-list