List of lists

Discussion in 'Python' started by Mike, Jun 27, 2003.

  1. Mike

    Mike Guest

    How do I extract a list of lists from a user defined function and print the
    results as strings for each list?
    Mike, Jun 27, 2003
    #1
    1. Advertising

  2. Mike

    Ben Finney Guest

    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
    Ben Finney, Jun 27, 2003
    #2
    1. Advertising

  3. Mike

    Ben Finney Guest

    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
    Ben Finney, Jun 27, 2003
    #3
  4. Mike

    Mike Guest

    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())
    Mike, Jun 27, 2003
    #4
  5. Mike

    Mike Guest

    Sorry, must of hit crtl v a couple times.
    Mike, Jun 27, 2003
    #5
  6. Mike

    Ben Finney Guest

    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
    Ben Finney, Jun 27, 2003
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. JustSomeGuy

    Sorting lists of lists...

    JustSomeGuy, Jun 17, 2004, in forum: C++
    Replies:
    0
    Views:
    309
    JustSomeGuy
    Jun 17, 2004
  2. =?UTF-8?B?w4FuZ2VsIEd1dGnDqXJyZXogUm9kcsOtZ3Vleg==

    List of lists of lists of lists...

    =?UTF-8?B?w4FuZ2VsIEd1dGnDqXJyZXogUm9kcsOtZ3Vleg==, May 8, 2006, in forum: Python
    Replies:
    5
    Views:
    391
    =?UTF-8?B?w4FuZ2VsIEd1dGnDqXJyZXogUm9kcsOtZ3Vleg==
    May 15, 2006
  3. yomgui

    list of lists of lists ....

    yomgui, Jul 28, 2006, in forum: Python
    Replies:
    6
    Views:
    302
    yomgui
    Jul 31, 2006
  4. bahoo
    Replies:
    3
    Views:
    291
    Bruno Desthuilliers
    Apr 3, 2007
  5. antar2
    Replies:
    2
    Views:
    382
    Bighead
    Jul 17, 2008
Loading...

Share This Page