> You have a list of unknown length, such as this: list = > [X,X,X,O,O,O,O]. You want to extract all and only the X's. You know > the X's are all up front and you know that the item after the last X is > an O, or that the list ends with an X. There are never O's between > X's. > > I have been using something like this: > _____________________ > > while list[0] != O: > storage.append(list[0]) > list.pop(0) > if len(list) == 0: > break > _____________________
While it doesn't modify your list, you can try something like storage = [q for q in myList if q != O] If you've already got stuff in storage that you want to keep, you can use storage.extend([q for q in myList if q != O]) I suppose, if you wanted to remove all the O's, you could then just do myList = [q for q in myList if q == O] (trickiness using Oh's vs. using zeros...) -tkc -- http://mail.python.org/mailman/listinfo/python-list