如何将两个列表与while循环进行比较

时间:2016-07-08 20:32:36

标签: python list while-loop break raw-input

我正在尝试创建一个接收答案并将其附加到新列表的脚本,然后检查新列表是否与其他列表相同。当这些列表相同时,while循环应该会中断。

注意:每个问题都不应重复。

这是我的代码

import random 

questions = ['a','b','c','d','e']

answered_q = []

while len(answered_q) < len(questions):
    question = random.choice(questions)
    answered_q.append(question)
    raw_input = str(input(question + ": "))
    if sorted(questions) == sorted(answered_q):
        break

执行后我仍然会收到随机问题,但当列表内容相同时,代码不会中断

输出

['b','c','b,'d','d']

如果有人可以提供帮助,那就太好了! 提前谢谢!

2 个答案:

答案 0 :(得分:1)

我认为你真正想要做的只是如果要添加的元素尚未添加到你的新列表中,那么添加一个检查。

feedSendModelClass

当然,在这种方案下,即使没有最后一个if语句,循环也应该结束,因为两个列表的长度将等于两个排序列表相等的时间。

答案 1 :(得分:1)

首先,你得到随机问题(以及排序),但是你要比较一组排序{ "a", "b", "c", "d" }

要使用当前实现解决此问题,请使用set - pop

虽然就个人而言,我只会len(questions) > 0从一个列表到另一个列表的事情,在 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType(DocumentsContract.Document.MIME_TYPE_DIR); startActivityForResult(intent, REQUEST_CODE); 时循环,这可以保证您不会多次提出问题。