Welcome, guest | Sign In | My Account | Store | Cart
```def flatten(sequence):

def hms(fpd):
if fpd < 60:
return fpd
elif fpd < 60**2:
return "%s:%s" % (int(fpd/60), fpd-int(fpd/60)*60)
else:
h = int(fpd/60**2)
fpd -= h*60**2
m = int(fpd/60)
fpd -= m*60
s = fpd
return "%s:%s:%s" % (h, m, s)

def rflat(seq2):
seq = []
for entry in seq2:
if seqin([entry]):
seq.extend([i for i in entry])
else:
seq.append(entry)
return seq

def seqin(sequence):
for i in sequence:
if ('__contains__' in dir(i) and    ## all sequences have '__contains__' in their dir()
type(i) != str and type(i) != dict): ## parentheses present to aid commenting mid-condition
return True
return False

import time
btime = time.time()
d1time = btime
seq = [sequence][:]    ## in case parameter isn't already a sequence
print "Thinking",
while seqin(seq):
d2time = time.time()
if d2time-d1time >= 5:
print ".",
d1time = d2time
seq = rflat(seq)
atime = time.time()
print
print "Sequence flattened in " + str(hms(atime-btime))
return seq
```

### History

• revision 2 (17 years ago)
• previous revisions are not available