lallous wrote:
L = (
(1, 2, 3),
(4,),
(5,),
(6, 7)
)
What I want, is to write the for loop, something like this:
for (first_element, the_rest) in L:
print first_element
for x in the_rest:
# now access the rest of the elements
Python 3 introduced a variable tuple assignment which I
suspect[*] would work in this context:
for first, *rest in L: # note the asterisk
print first
for x in rest:
do_stuff(x)
I know I can :
for x in L:
first = x[0]
rest = x[1:]
However in 2.x, this is the way to do it. Though if you want to
abstract the logic, you can move it to a generator:
def splitter(i):
for t in i:
yield t[0], t[1:]
for first, rest in splitter(L):
print first
for x in rest:
do_stuff(x)
-tkc
[*] not having py3 on this machine, I can't readily verify this.
--
http://mail.python.org/mailman/listinfo/python-list