blumenkraft wrote: > I have some list: > x = [8, 9, 1, 7] > and list of indices I want to delete from x: > indices_to_delete = [0, 3], so after deletion x must be equal to [9, > 1]. > > What is the fastest way to do this? Is there any builtin?
Why's that obsession with speed? >>> items = ["a", "b", "c", "d"] >>> delenda = [0, 3] >>> for i in sorted(delenda, reverse=True): ... del items[i] ... >>> items ['b', 'c'] >>> items = ["a", "b", "c", "d"] >>> delenda = set([0, 3]) >>> items = [item for index, item in enumerate(items) if index not in delenda] >>> items ['b', 'c'] If you really need to modify the list in place change items = [item for ...] to items[:] = [item for ...] Try these and come back to complain if any of the above slows down your script significantly... Peter -- http://mail.python.org/mailman/listinfo/python-list