PTY wrote: > Which is better? > > lst = [1,2,3,4,5] > > while lst: > lst.pop() > > OR > > while len(lst) > 0: > lst.pop()
Here's another reason not to use "if lst". Say you have a function that looks like this: def process_values(lst): if not lst: return do_expensive_initialization_step() for item in lst: do_something_with(item) do_expensive_finalization_step() That works, right? No problem, right? What if you called the function like this: process_values(x.strip() for x in values_lst) Oops, now we've just gone through an expensive initialization and finalization for nothing (since values_lst was empty). Maybe some subtle bugs introduced. If we're lucky, the finalization step will throw an exception. If we had used "if len(list)>0", we'd have gotten a nice exception telling us that a generator is not welcome. Then we'd have changed the argument to a list comprehension, or better, changed the function to work for any iterator. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list