I'm well aware of the fact that the slice creates a new list. Either example is going to create a whole lot of useless temporary lists. Granted, the slice version creates almost twice as many, but both are horribly wasteful. I wrote it that way because reverse is in-place and the range syntax is ugly.
k = [1, 2, 3, 4, 5, 6, 7, 8, 9]; k = [e for e in k if e < 2]
Because your syntax wasn't correct. Also, Python list comprehensions can nest, try this:
k = [(i, j) for i in range(10) for j in range(10)[::-1]]
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!