Anand schrieb: > Suppose i have a big list and i want to take tke the first one and rest > of the list like car/cdr in lisp. > is there any easy way to do this in python? > > Only way i know is > > a = range(10) > x, y = a[0], a[1:]
You have so many higher-level ways to access and iterate through lists in Python, that you normally just don't need to do things like that. Also, in the frequent case where y=a, you can just write x = a.pop(0). > Why can't python support something like this: > > x, *y = a > > This is not really a new concept to python, infact when calling a > function which takes variable arguments, it is used in a similar way. You're right, that would not be so far off. But then, the following should be also supported: *x, y = a # x, y = a[:-1], y = a[-1] x, *y, z = a # x, y, z = a[0], a[1:-1], a[-1] Of course, there can be only one variable with an asterisk. (But note that in the situation of a function taking parameters, that variable must always be the last.) But I don't know if this is really useful enough... -- Christoph -- http://mail.python.org/mailman/listinfo/python-list