Astan Chee: (This is a small trap of Python, that it shares with some other languages, and it shows that it may exist a language with a higher level than Python.) Generally in Python you can't modify a sequence that you are iterating on. There are some ways to avoid the problem. You can create a duplicate of the ps list:
ps = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] qs = [6,7,8,9,10,11,12,1,2] for p in ps[:]: if p in qs: ps.remove(p) print ps Or: for p in list(ps): if p in qs: ps.remove(p) print ps Or: import copy for p in copy.copy(ps): if p in qs: ps.remove(p) print ps Or you can adopt a different strategy: print [el for el in ps if p not in qs] This algorithm is O(n*m), so if the two lists are long, you may need too much time to run that. To speed up the program you can do this (Python 2.4): sqs = set(qs) print [el for el in ps if p not in sqs] Bye, bearophile -- http://mail.python.org/mailman/listinfo/python-list