bayerj wrote: > > I'm going to assume that it's supposed to work like this, but could > > someone tell me the reasoning behind it? I.E. why is 3 skipped? > > Because: > > >>> alist[2] > 3 > > You are removing the third item, not the second.
This is incorrect. You may need to remind yourself that the arg of remove is a value to be searched for and then removed, not an index. del alist[2] would remove the third item. You may have been confused by the OP's obfuscatory example alist = [1, 2, 3]. Consider this equivalent: | >>> alist = ['foo', 'bar', 'zot'] | >>> for item in alist: | ... print item | ... if item == 'bar': | ... alist.remove(item) | ... | foo | bar | >>> alist | ['foo', 'zot'] | >>> HTH, John -- http://mail.python.org/mailman/listinfo/python-list