Random.shuffle将重复列表中的元素

2024-04-16 05:09:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何修复程序中的错误。基本上,我有一个简短的测验程序,它应该以随机方式向用户询问他们以前输入的列表中的一系列问题(pickle从下面的示例中我的代码的前一部分加载这些问题),但该程序有时会重复相同的问题,这是我不希望发生的

我在这个网站上看过,但我无法理解类似问题的答案

def quiz():
    import pickle
    import random
    import os
    os.system('cls')

    a = pickle.load(open("quiz.dat", "rb")))
    random.shuffle(a)
    #loads questions ans answers from previous section of program

    for b in a:
        print(b["question"])
        response = input("What was the answer? : ")
        if (response == b["answer"]):
            print("Good Answer!")
        else:
            print("Wrong answer...")
            print("The right answer was", b, ".")
    print("Quiz is now over.")

Tags: 用户answerimport程序示例列表osresponse
1条回答
网友
1楼 · 发布于 2024-04-16 05:09:06

Python random.shuffle(x[, random])重新组织列表项的顺序。根据您的代码,只有在保存的文件(从这里通过pickle加载列表)已经有重复的问题时,才可能重复

要删除重复项,如果a的类型为list,则可以使用set()。比如说,

a = pickle.load(open("quiz.dat", "rb")))
a = list(set(a))
... 

相关问题 更多 >