我正在进行测验。这意味着我必须为列表生成随机问题,但我需要确保不再重复问题。我正在使用Python 3.1.4,但我不知道如何确保它检查字符串是否尚未生成。我用来生成字符串的代码是:
generated_question = random.choice(question_list)
答案 0 :(得分:3)
不要使用choice
,而是考虑使用shuffle
和.pop
:
question_order = question_list[:] # make a copy of the input list
random.shuffle (question_order)
for i in range(5):
print(question_order.pop())
这将打印出五个问题(假设你的名单中至少有这么多),没有重复。
答案 1 :(得分:0)
您可以创建一份列表副本,并在从该副本中询问后删除每个问题:
question_list_2 = question_list
while len(question_list_2) > 0: #use all questions
generated_question = random.choice(question_list_2)
print(generated_question)
question_list_2.remove(generated_question)
这将打印所有问题,每个问题只打印一次。
答案 2 :(得分:0)
您只需要在选择状态下使用示例函数 random.sample(“您的列表或任何事物名称”,k =“您想要的随机对象的数量”) 轻松地,您必须这样做:
import random
import string
str_list = string.ascii_lowercase
print(random.sample(str_list, 5))
,输出将是:
['l', 'o', 'r', 'p', 'm']