disgrating a list
George Sakkis
george.sakkis at gmail.com
Fri Sep 1 20:20:53 EDT 2006
jwaixs wrote:
> Thank you for all your reply and support. Neil's fits the most to me. I
> shrinked it to this function:
>
> def flatten(x):
> for i in range(len(x)):
> if isinstance(x[i], list):
> x[i:i+1] = x[i]
>
> Thank you all again. If someone could find even a cuter way, I'd like
> to see that way.
>
> Noud Aldenhoven
The recursive generator implementation seems cuter (and I guess more
efficient) to me; YMMV:
def flatten(x):
if not isinstance(x,list):
yield x
else:
for elem in x:
for subelem in flatten(elem):
yield subelem
Or if you want to modify the argument list in place, as in Neil's
solution:
def flatten_in_place(x):
x[:] = flatten(x)
George
More information about the Python-list
mailing list