On Tue, 19 May 2009 14:38:19 -0700, walterbyrd wrote: > On May 8, 5:55 pm, John Yeung <gallium.arsen...@gmail.com> wrote: >> On May 8, 3:03 pm,walterbyrd<walterb...@iname.com> wrote: >> >> > This works, but it seems like there should be a better way. >> >> > -------------- >> > week = ['sun','mon','tue','wed','thu','fri','sat'] for day in >> > week[week.index('tue'):week.index('fri')]: >> > print day >> > --------------- >> >> I think you should provide much more information, primarily why you >> want to do this. What is the larger goal you are trying to achieve? > > I am just looking for a less verbose, more elegant, way to print a slice > of a list. What is hard to understand about that? I am not sure how > enumerated types help.
Printing a slice of a list is about as concise and elegant as possible: print alist[slice_obj] or print alist[start:end:step] But that's not what the example in your first post suggests. Your example suggests you have *two* problems: (1) Given a slice, how to print each item in the slice _individually_. The answer to that is for x in aslice: print x Pretty concise and elegant. (2) Given an arbitrary starting and ending _item_ rather than _position_, how to concisely and elegantly generate a slice. There are many answers, depending on _why_ you want to do this. One possible answer is to write a function to do it: def print_slice(alist, start_item, end_item): start_pos = alist.index(start_item) end_pos = alist.index(end_item) for x in alist[start_pos:end_pos]: print x Now print_slice(week, 'tue', 'fri') is pretty concise and elegant. Another answer is: Don't do that, do something else. If you have an enumerated type, then you could (in principle) do this: week = enumerated('mon tue wed thu fri sat sun') for x in week.tue-week.fri: print x depending on the enumerated type itself naturally. -- Steven -- http://mail.python.org/mailman/listinfo/python-list