![]() |
List of lists
How do I extract a list of lists from a user defined function and print the
results as strings for each list? |
Re: List of lists
On Fri, 27 Jun 2003 01:44:42 GMT, Mike wrote:
> How do I extract a list of lists from a user defined function Depends how that function is returning its values. The most obvious, and simplest way to do what you describe, is to have the function return a list of lists, as its return value. If you mean something else, you'll have to be more descriptive of what you actually want to do. > and print the results as strings for each list? The 'repr()' method of any object will return a printable string of the object's representation. -- \ "Kill myself? Killing myself is the last thing I'd ever do." | `\ -- Homer, _The Simpsons_ | _o__) | http://bignose.squidly.org/ 9CFE12B0 791A4267 887F520C B7AC2E51 BD41714B |
Re: List of lists
On Fri, 27 Jun 2003 03:15:56 GMT, Mike wrote:
> def get_questions(): > return [["What color is the daytime sky on a clear day?","blue"],\ > ["What is the answer to life, the universe and > everything?","42"],\ > ["What is a three letter word for mouse trap?","cat"]] These should not be a list of lists. To refer to a previous c.l.python discussion, "for homogeneous data, use a list; for heterogeneous data, use a tuple". Thus, each question-and-answer pair is heterogeneous: it matters which is which, and which position each is in; and extending it with more items doesn't have any meaning. On the other hand, a list of question-and-answer pairs is homogeneous: each can be treated like any other question-and-answer pair, and the list of them could be indefinitely extended or contracted without distorting the meaning of the list. So, get_questions() is better done with: def get_questions(): return [ ( "What colour is a clear daytime sky?", "blue" ), ( "What is the answer to the ultimate question?", "42" ), ( "What is a three-letter word for mouse trap?", "cat" ), ] (Note that placing a comma even after the last item in a list, allows you to extend the list in the code without having a missing comma by accident.) Then, you iterate over the list of question-and-answer pairs, and get a tuple of (question, answer) each time: >>> for (question, answer) in get_questions(): print question, answer What colour is a clear daytime sky? blue What is the answer to the ultimate question? 42 What is a three-letter word for mouse trap? cat -- \ "Homer, where are your clothes?" "Uh... dunno." "You mean Mom | `\ dresses you every day?!" "I guess; or one of her friends." -- | _o__) Lisa & Homer, _The Simpsons_ | http://bignose.squidly.org/ 9CFE12B0 791A4267 887F520C B7AC2E51 BD41714B |
Re: List of lists
Ok, I'm doin an exercise and I need to expand on test.py. I'm pretty much
done with the exercise except I need to print out the questions and answers that are in the function. here is the snippet: def get_questions(): return [["What color is the daytime sky on a clear day?","blue"],\ ["What is the answer to life, the universe and everything?","42"],\ ["What is a three letter word for mouse trap?","cat"]] How do I get the lists from this? oh here is the whole program; ## This program runs a test of knowledge true = 1 false = 0 # First get the test questions # Later this will be modified to use file io. def get_questions(): # notice how the data is stored as a list of lists return [["What color is the daytime sky on a clear day?","blue"],\ ["What is the answer to life, the universe and everything?","42"],\ ["What is a three letter word for mouse trap?","cat"]] # This will test a single question # it takes a single question in # it returns true if the user typed the correct answer, otherwise false def check_question(question_and_answer): #extract the question and the answer from the list question = question_and_answer[0] answer = question_and_answer[1] # give the question to the user given_answer = raw_input(question) # compare the user's answer to the testers answer if answer == given_answer: print "Correct" return true else: print "Incorrect, correct was:",answer return false # This will run through all the questions def run_test(questions): if len(questions) == 0: print "No questions were given." # the return exits the function return index = 0 right = 0 while index < len(questions): #Check the question if check_question(questions[index]): right = right + 1 #go to the next question index = index + 1 #notice the order of the computation, first multiply, then divide print "You got ",right*100/len(questions),"% right out of",len(questions) #now lets run the questions run_test(get_questions()) ## This program runs a test of knowledge true = 1 false = 0 # First get the test questions # Later this will be modified to use file io. def get_questions(): # notice how the data is stored as a list of lists return [["What color is the daytime sky on a clear day?","blue"],\ ["What is the answer to life, the universe and everything?","42"],\ ["What is a three letter word for mouse trap?","cat"]] # This will test a single question # it takes a single question in # it returns true if the user typed the correct answer, otherwise false def check_question(question_and_answer): #extract the question and the answer from the list question = question_and_answer[0] answer = question_and_answer[1] # give the question to the user given_answer = raw_input(question) # compare the user's answer to the testers answer if answer == given_answer: print "Correct" return true else: print "Incorrect, correct was:",answer return false # This will run through all the questions def run_test(questions): if len(questions) == 0: print "No questions were given." # the return exits the function return index = 0 right = 0 while index < len(questions): #Check the question if check_question(questions[index]): right = right + 1 #go to the next question index = index + 1 #notice the order of the computation, first multiply, then divide print "You got ",right*100/len(questions),"% right out of",len(questions) #now lets run the questions run_test(get_questions()) |
Re: List of lists
Sorry, must of hit crtl v a couple times.
|
Re: List of lists
On 27 Jun 2003 13:04:53 +0950, Ben Finney wrote:
> >>> for (question, answer) in get_questions(): > print question, answer Dang, messed up the indentation when I pasted. This has the correct indentation: >>> for (question, answer) in get_questions(): print question, answer What colour is a clear daytime sky? blue What is the answer to the ultimate question? 42 What is a three-letter word for mouse trap? cat -- \ "If life deals you lemons, why not go kill someone with the | `\ lemons (maybe by shoving them down his throat)." -- Jack Handey | _o__) | http://bignose.squidly.org/ 9CFE12B0 791A4267 887F520C B7AC2E51 BD41714B |
| All times are GMT. The time now is 06:24 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.