By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,383 Members | 2,070 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,383 IT Pros & Developers. It's quick & easy.

List of lists

P: n/a
How do I extract a list of lists from a user defined function and print the
results as strings for each list?
Jul 18 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a
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
Jul 18 '05 #2

P: n/a
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())
Jul 18 '05 #3

P: n/a
Sorry, must of hit crtl v a couple times.
Jul 18 '05 #4

P: n/a
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
Jul 18 '05 #5

P: n/a
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
Jul 18 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.