# [Tutor] Random module help

Norman Khine norman at khine.net
Sat Oct 6 14:30:20 CEST 2007

```Hi Alan,
Thanks for the suggestion, but I am not sure it is what I am after. From
your dictionary, for example, I wanted to have a list as:

"where do you live?"

then the next time I run the program I will get:

"who are you?

etc...

rather then, what I have now is:

"who are you?"
...

I have updated the code as you suggested to:

import random
n_questions = 5
q = {'1': ['1a', '1b', '1c'],
'2': ['2a', '2b', '2c'],
'3': ['3a', '3b', '3c'],
'4': ['4a', '4b', '4c'],
'5': ['5a', '5b', '5c'],
'6': ['6a', '6b', '6c'],
'7': ['7a', '7b', '7c'],
'8': ['8a', '8b', '8c']
}

if len(q) > n_questions:
q_keys = random.sample(q.keys(), n_questions)
else:
q_keys = q.keys()
q_keys.sort()
a = [q[x] for x in q_keys]
print a

which returns:

[['2a', '2b', '2c'], ['4a', '4b', '4c'], ['5a', '5b', '5c'], ['7a',
'7b', '7c'], ['8a', '8b', '8c']]

etc...

So from this how do I choose a random element and produce a new
dictionary like for example:

[2a, 4b, 5c,  7b, 8c]

Thanks

Alan Gauld wrote:
> "Norman Khine" <norman at khine.net> wrote
>
>> But what I was wondering if possible in achieving is that my
>> questions
>> set (q) contains questions that are similar, i.e. they are written
>> in
>> different ways, so I wanted to get the random set of unique
>> questions
>> rather then have variations of the same question returned in my set.
>
> It sounds like maybe you need a list of questions against the keys.
> That way you can select one of the list of similar questons at
> random whenever that key is chosen.
>
> {'q1': ['What is you name?', 'who are you?', 'what are you called?'],
>  q3: [ etc....]
> }
>
> HTH,
>
>

--
Norman

```