如何使用Random Randint for List?

时间:2014-10-14 20:51:49

标签: python list text random

我写了3个问题,我想使用Random Randint随机挑选和显示。我不知道如何使用Random Randint在我的代码中使用它。

4 个答案:

答案 0 :(得分:6)

您根本不会使用random.randint() 。您可以使用random.choice()代替:

import random

questions = [question1, question2, question3]
random_question = random.choice(questions)

该函数从序列中随机选取一个元素。

如果您需要随机生成问题而不重复,您需要做一些不同的事情;您可以使用random.shuffle()随机化整个问题列表,然后在每次需要新问题时从该列表中选择一个(可能将其从列表中删除)。这会产生随机序列的问题。

import random

questions = [question1, question2, question3]
random.shuffle(questions)

for question in questions:
    # questions are iterated over in random order

questions = [question1, question2, question3]
random.shuffle(questions)

while questions:
    next_question = questions.pop()

答案 1 :(得分:2)

请勿使用randint,请使用random.choice。此功能将从列表中选择一个随机项。

import random

l = [1,2,3]

>>> random.choice(l)
2
>>> random.choice(l)
1
>>> random.choice(l)
1
>>> random.choice(l)
3

答案 2 :(得分:2)

如果您需要使用randint因为作业,您可以查看choice的工作原理。略有简化,就是这样:

def choice(seq):
    i = randrange(len(seq))
    return seq[i]

randint(a, b)只是“randrange(a, b+1)”的别名。

因此,您知道如何使用Martijn Pieter's answer中的choice,您知道choice做了什么,您应该能够从中找出如何使用randint那里。

答案 3 :(得分:1)

如果"you want to pick with replacement (that is, each time there's a 1/3 chance of each)"

#!/usr/bin/env python
import random

questions = ["question1", "question2", "question3"]
while True: # infinite loop, press Ctrl + C to break
    print(random.choice(questions)) 

"没有替换(也就是说,每个只显示一次,所以经过3次选择之后就没有了)"

#!/usr/bin/env python
import random

questions = ["question1", "question2", "question3"]
random.shuffle(questions)
while questions: # only `len(questions)` iterations
    print(questions.pop()) 

"或某些混合(例如,以随机顺序选择所有3,然后再以随机顺序重复所有3,等等。"

#!/usr/bin/env python
import random

questions = ["question1", "question2", "question3"]
while True: # infinite loop, press Ctrl + C to break
    random.shuffle(questions)
    for q in questions: # only `len(questions)` iterations
        print(q)