PYTHON从列表中随机化问题并进行枚举

时间:2016-02-25 18:30:31

标签: python random enumerate

我有一个25个问题的列表,我想随机选择7.问题列表将在IRC客户端(文本)。以下是我目前所提出的问题以及我从列表中随机化7的建议过程的示例。

我想做

questions=[
    'Finish this poem "Roses are red Violets are ..."',
    'What is your favorite food?','Stones or Beatles?',
    'favorite pet?',
    'favorite color?',
    'favorite food?'
]

for q in xrange(3):
    question = ''
    while question not in questions:
        # this is where I'm stuck

我想要像。

  1. 你最喜欢的食物是什么?
  2. 最喜欢的宠物?
  3. 石头或披头士?
  4. 最终结果将是来自25个人的10个问题。

3 个答案:

答案 0 :(得分:1)

您可以使用shuffle()

from random import shuffle

shuffle(questions)

for question in questions[:7]:
    answer = input(question)
    # do something with answer

答案 1 :(得分:0)

使用random.sample()

import random

for question in random.sample(questions, 7):
    answer = input(question)

但是,你需要有足够的问题。现在,您在列表中只有六个问题,因此random.sample()无法提出七个随机问题。我假设您的真实列表有25个问题,因为您说from a pool of 25,所以我只是评论。

答案 2 :(得分:0)

一种好方法可以使用random.sample

>>> from random import sample
>>> items = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm']
>>> selected = []

>>> for item in sample(items, 7):
...    selected.append(item)
>>> print selected
['h', 'l', 'j', 'm', 'i', 'e', 'c']