如何在Python中比较不同函数中的两个列表?

如何在Python中比较不同函数中的两个列表?,python,python-3.x,django,list,django-views,Python,Python 3.x,Django,List,Django Views,我正在制作一个Django web应用程序,在比较不同函数中的两个不同列表时遇到了一个问题 def test(request,slug): n=request.user choice=TestOptions.objects.filter(choice=slug).first() que=questions.objects.filter(Subject=choice) question=[] un=['a','b','c','d','e']

我正在制作一个Django web应用程序,在比较不同函数中的两个不同列表时遇到了一个问题

def test(request,slug):
    n=request.user
    choice=TestOptions.objects.filter(choice=slug).first()
    que=questions.objects.filter(Subject=choice)  
    question=[]
 
    un=['a','b','c','d','e']
    
    for q in que:
        if q not in question:
            question.append(q)
        else:
            continue
    sampling = random.sample(question, 5)
    print("--------------SamPLING111")
    print(sampling)
    print("--------------SamPLING111")
    correctAnswers=[]
    for j in sampling:
          
            correctAnswers.append(j.answer)

    marks(correctAnswers)
    d = dict(zip(un,sampling))
    return render(request,"code/test.html",{'questions':d})

def acceptAnswer(request):
    answers=[]
    if request.method=="POST":
        answers.append(request.POST['a'])
        answers.append(request.POST['b'])
        answers.append(request.POST['c'])
        answers.append(request.POST['d'])
        answers.append(request.POST['e'])

        score(answers)
    return render(request,"code/dub.html")

def marks(correct):
  list1=[]
  l1=correct

def score(and):
  list2=[]
  l2=ans
函数测试正在通过一个列表,函数接受答案正在通过另一个列表。我的工作是比较这两个列表


如何比较l1和l2?

我并不是100%地了解您对这些列表所做的操作,但为了比较它们,我只会返回它们。下面是一个简单的例子:

def marks(correct):
    list1 = []
    l1 = correct
    return l1

def score(answer):
    list2 = []
    l2 = answer
    return l2
    
numbers = [1,2,3]
numbers2 = [1,2,3]
numbers3 = [3,4,5]

print(marks(numbers) == score(numbers2)) # True
print(marks(numbers2) == score(numbers3)) # False

希望这有帮助

与其继续评论,我想我应该在回答中详细说明,虽然这不是你问题的确切答案,但我认为这是真正的答案

你真的有两个问题。一个是设计问题,即如何使程序正确工作,另一个是关于变量范围和如何处理的实现问题

我可以在你的个人资料中看到你是一名大学生,考虑到代码的性质,你编写web应用程序的目的很可能是为了学习,甚至可能是为了作业

如果你是在大学以外的地方做这件事,我希望你是在寻找实践者类型的技能,在这种情况下,我建议答案应该是按照Django希望你的方式设计你的应用程序,我会说这将转化为在数据库中存储状态信息

但是,如果这是一个实验室,您可能还没有涵盖数据库。实验室有时会让学生做一些愚蠢的事情,因为他们不能同时教授所有的东西。所以你的教授可能还不希望你使用数据库


在Web应用程序中,您必须考虑Web是请求响应,并且可以从许多不同的源获得请求,因此您有传统桌面应用程序所没有的状态管理关注点。谁应该看到这些测试,谁应该看到标记,这些事情发生的顺序是什么?是否有人能够创建一个测试?有人能参加考试吗?你可能还不关心,最终你会想关心会话。如果人们正在进行自己的测试,您可以将数据存储在用户会话中,但其他人不会看到这些测试。通常,存储这种状态的正确方法是在数据库中,您可以根据对当前请求的了解来访问它。如果这是一种基本的介绍应用程序,你的教授可能会很高兴你现在做了一些笨拙的事情。

你首先需要它们同时存在。你知道怎么做吗?事实上这是可能的,因为它实际上在Django中得到不同的函数值,所以它们是分开存在的。你如何做你想做的事情,与你是否应该做或者你能做的方式是否好有点不同,这取决于你到底在做什么以及为什么。这些清单的意义是什么?他们来自哪里?它们目前生活在不同的范围内,因此并不同时存在。你可以让它们全球化,但这可能是个糟糕的主意。也许它们都应该是包含这两个函数的类的成员变量,也许您应该重新考虑您的函数或应用程序的流程,以使其更容易。@Daviddoldford请查看我现在已经做了所有可能的更改。您可以将分数(正确答案)作为acceptAnswer()函数的参数传递吗?然后你可以比较它们。不,这不会帮助我看到问题中的新变化