On Tue, 13 Jul 2010 08:19:51 am Siren Saren wrote: > I'm still fairly new to programming. [...]
Please don't include the ENTIRE 300+ lines of the digest in your post. Start a NEW email, don't reply to the digest, and if you absolutely have to reply to the digest, delete the parts that you are not directly replying to. > I've seen a lot of examples in books for dealing with lists of > alternating data types, but what about a list that doesn't follow a > simple numeric pattern? The general solution to that is, avoid it. [...] > Probably easier to choose one of these. So pretend I have a list > like this: > > (Crime and punishment, page 10, page 40, page 30, Brother's > Karamazov, page 22, page 55, page 9000, Father's and Sons, page 100, > Anna Karenina, page 1, page 2, page 4, page 7, page 9) The simplest way to deal with that is to put the pages into sub-lists, and combine the title and pages into a tuple: booklist = [ ("Crime and punishment", [10, 40, 30]), ("Brother's Karamazov", [22, 55, 9000]), # That's a big book! ("Father's and Sons", [100]), ("Anna Karenina", [1, 2, 4, 7, 9]), ] Now you can iterate over the collection: for title, pages in booklist: print title for page in pages: print "page", page or do whatever other work you need on them. Notice that the outer list is now easy to work with: every element of the outer list is the same, a tuple of two items. The inner lists are also easy to deal with: every element is simply a page number. An alternative is a dictionary: books = { "Crime and punishment": [10, 40, 30], "Brother's Karamazov": [22, 55, 9000], "Father's and Sons": [100], "Anna Karenina": [1, 2, 4, 7, 9], "Where's Wally?": [], } Now each key is simply the title, and the value is a list of page numbers. -- Steven D'Aprano _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor