> If I want to create a list of the form [100, 99, 99, 98, 98, 97, 97...] > (where each item is repeated twice after the first one), how might I do > that most efficiently? > > Right now I have this: > > series = [100] > for x in range(10): # just for testing > series.append(series[-1] - 1)
Well, you can do something like def foo(start): count = 0 while 1: yield start - ((count + 1) / 2) count += 1 which is pretty efficient in the matter. If you just need the results, you can do something like series = [100] for _ in range(10): series.extend([x[-1]-1]*2) Both should get you what you want, and one or the other may be better depending on the scenario in which you want to use it. -tkc -- http://mail.python.org/mailman/listinfo/python-list