Need a strange sort method...
rrr at ronadam.com
Tue Oct 17 18:42:52 CEST 2006
Neil Cerutti wrote:
> On 2006-10-16, Tim Chase <python.list at tim.thechases.com> wrote:
>> If you need it in a flat list, rather than as a list of
>> chunk_size lists (which are handy for iterating over in many
>> cases), there are ways of obtaining it, such as the hackish
>>>>> sum([a[i::chunk_size] for i in range(chunk_size)], )
>> [1, 4, 7, 10, 2, 5, 8, 3, 6, 9]
>> There are likely good recipes for flattening a list. I just
>> happen not to have any at my fingertips.
> Actually, there isn't a good recipe in Python for flattening a
> list. They all come out tasting like Circus Peanuts (Turkish
> Delight for you non-Yanks).
Here's two that I came up with. They are both very fast compared to anything
else I've seen. Maybe they won't taste so much like Peanuts. :-)
""" Flatten a list in place.
i = 0
while i < len(L):
while type(L[i]) is list:
L[i:i+1] = L[i]
i += 1
""" Return a flattened sequence as a list.
for s in seq:
if hasattr(s, '__iter__'):
for i in iterinner(s):
More information about the Python-list