On Sun, Oct 4, 2009 at 8:09 PM, flebber <flebber.c...@gmail.com> wrote: > Hi > > Can someone clear up how I can remove all entries of a list when I am > unsure how many entries there will be. I have been using sandbox to > play essentially I am creating two lists a and b I then want to add a > to b and remove all b entries. This will loop and b will receive new > entries add it to a and delete again. > > I am going wrong with slice and list deletion, I assign x = len(b) and > then attempting to delete based on this. Here is my sandbox session. > What part am I getting wrong? > > #>>> > a = (1, 2, 3, 4) > b = (5, 6, 7, 8) <snip> > x = len(b) > #>>> > del b[0:x] > Traceback (most recent call last): > Error: File "<Shell>", line 1, in <module> > Error: TypeError: 'tuple' object does not support item deletion
As the error message says, you're using *tuples*, not lists. Tuples are immutable (i.e. they cannot be modified after creation) and are created using parentheses. Lists on the other hand are made using brackets: [1, 2, 3, 4] # like this Additionally, the idiomatic way to clear a list (besides the more obvious approach of just assigning a new, empty list to the variable) is: del a[:] Leaving out the endpoints in the slice causes it to default to the entire contents of the list. Cheers, Chris -- http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list