Let\'s say i have an array of Tuples, s, in the form of:
s = ((1, 23, 34),(2, 34, 44), (3, 444, 234))
and i want to return another Tuple,
The list comprehension method given by Ignacio is the cleanest.
Just for kicks, you could also do:
zip(*s)[0]
*s expands s into a list of arguments. So it is equivalent to
zip( (1, 23, 34),(2, 34, 44), (3, 444, 234))
And zip returns n tuples where each tuple contains the nth item from each list.
No.
t = tuple(x[0] for x in s)
import itertools
s = ((1, 23, 34),(2, 34, 44), (3, 444, 234))
print(next(itertools.izip(*s)))
itertools.izip returns an iterator. The next function returns the next (and in this case, first) element from the iterator.
In Python 2.x, zip returns a tuple.
izip uses less memory since iterators do not generate their contents until needed.
In Python 3, zip returns an iterator.