Seb wrote: > On Thu, 24 Nov 2016 10:18:21 +0100, > Peter Otten <__pete...@web.de> wrote: > >> Is win_files huge? Then it might help to avoid going over the entire >> list for every interval. Instead you can sort the list and then add to >> the current list while you are below nextw. > >> My pandas doesn't seem to have Timedelta (probably it's too old), so >> here's a generic solution using only the stdlib: > > [...] > >> PS: If the files' prefixes differ you cannot sort by name. Instead use > >> ec_files.sort(key=filename_to_time) > >> PPS: There is probably a way to do this by converting the list to a >> pandas dataframe; it might be worthwhile to ask in a specialised >> forum. > > Thank you, I learned a few things there (particularly nonlocal, since > I'm still in Python 2.7)!
Did you get the code to work in Python 2? One way is to tack the nonlocal value as an attribute onto the first mutable you can find: def make_key(delta_t): def key(filename): if key.upper_bound is None: key.upper_bound = filename_to_time(filename) + delta_t else: t = filename_to_time(filename) while t >= key.upper_bound: key.upper_bound += delta_t return key.upper_bound key.upper_bound = None return key And if it worked, did it actually improve performance? -- https://mail.python.org/mailman/listinfo/python-list