I\'ve been whacking away at this for a while to no avail... Any help would be greatly appreciated.
I have:
[{\'event\': 0, \'voltage\': 1, \'time\':
I think what you really want is to filter them:
elist = [{'event': 0, 'voltage': 1, 'time': 0},
{'event': 0, 'voltage': 2, 'time': 1},
{'event': 1, 'voltage': 1, 'time': 2},
{'event': 1, 'voltage': 2, 'time': 3},
{'event': 2, 'voltage': 1, 'time': 4},
{'event': 2, 'voltage': 2, 'time': 5}]
from itertools import ifilter
def get_events(elist, n):
return ifilter( lambda d: d['event'] == n , elist)
for e in get_events(elist,0):
print e
this solution will not create additional structures. (think in case of HUGE event list)
Another very nice solution is to use groupby:
from itertools import groupby
from operator import itemgetter
for group in groupby(elist, itemgetter('event')):
id, event_list = group
for e in event_list:
print e
{'time': 0, 'event': 0, 'voltage': 1}
{'time': 1, 'event': 0, 'voltage': 2}
{'time': 2, 'event': 1, 'voltage': 1}
{'time': 3, 'event': 1, 'voltage': 2}
{'time': 4, 'event': 2, 'voltage': 1}
{'time': 5, 'event': 2, 'voltage': 2}