On Wednesday, March 25, 2015 at 11:23:08 AM UTC+5:30, Paul Rubin wrote: > kai.peters writes > > 1 bit images of a size of 1024 x 1280 need to be processed this way, > > so 1310720 list elements. Also needs to be 2.7 only. > > Where are these lists going to come from? Files? Process the file > differently, probably. Use generators instead of lists, maybe.
Some C-ish solutions and then two loop-unrollings: def foo(lst): i = 0 while i < len(lst): acc = 0 for j in range(8): acc = 2*acc+lst[i] i += 1 yield acc def bar(lst): i = 0 while i < len(lst): acc = 0 acc = 2*acc+lst[i] acc = 2*acc+lst[i+1] acc = 2*acc+lst[i+2] acc = 2*acc+lst[i+3] acc = 2*acc+lst[i+4] acc = 2*acc+lst[i+5] acc = 2*acc+lst[i+6] acc = 2*acc+lst[i+7] i += 8 yield acc def baz(lst): i = 0 while i < len(lst): acc = (128*lst[i] + 64*lst[i+1] + 32*lst[i+2] + 16*lst[i+3] + 8*lst[i+4] + 4*lst[i+5] + 2*lst[i+6] + lst[i+7]) i += 8 yield acc -- https://mail.python.org/mailman/listinfo/python-list