is this pythonic?
wuwei23 at gmail.com
Wed Jan 21 18:41:02 CET 2009
On Jan 22, 3:27 am, MRAB <goo... at mrabarnett.plus.com> wrote:
> FYI, you shouldn't modify a list you're iterating over.
But I'm not. I'm building a new list and binding it to the same name
as the original, which works perfectly fine (unless I'm missing
>>> l = range(100)
>>> l = [d for d in l if not d % 5]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85,
> The for-loop was removing the item where there's a match, so the list
> comprehension in this case should keep the item where there _isn't_ a match:
> l = [d for d in l if d['title'] != 'ti']
Now that's a mistake. Cheers for the catch.
More information about the Python-list