Building Time Based Bins
alessandro -oggei- ogier
alessandro.ogier at unimib.it
Sun Mar 20 17:04:16 EST 2005
MCD wrote:
> This goes on throughout a 12hr. period. I'd like to be able to place
> the low and high values of the additional fields in a single line
> divided into 5min intervals. So it would look something like this >>
>
> 1235 22 88
> 1240 31 94
what about a sane list comprehension madness ? <g>
lines = """\
1231 23 56
1232 25 79
1234 26 88
1235 22 34
1237 31 85
1239 35 94
"""
input = lines.split('\n') # this is your input
div = lambda x: (x-1)/5
l = dict([
(div(x), []) for x,y,z in [
tuple([int(x) for x in x.split()]) for x in input if x
]
])
[
l[x[0]].append(x[1]) for x in
[
[div(x), (x,y,z)] for x,y,z in
[
tuple([int(x) for x in x.split()]) for x in input if x
]
]
]
print [
[max([x[0] for x in l[j]]),
min([x[1] for x in l[j]]),
max([x[2] for x in l[j]])
] for j in dict([
(div(x), []) for x,y,z in [
tuple([int(x) for x in x.split()]) for x in input
if x
]
]).keys()
]
i think it's a bit memory hungry, though
cya,
--
Alessandro "oggei" Ogier <alessandro.ogier at unimib.it>
gpg --keyserver pgp.mit.edu --recv-keys EEBB4D0D
More information about the Python-list
mailing list