我有6个测试问题,我想随机化,连同他们的正确答案。问题#1和#2,#3和#4,#5和#6属于同一类型。为了不让测试过于简单,我不希望连续显示#1和#2(对于这个问题,也不是#3和#4,或#5和#6)。如何使用约束条件对列表进行洗牌(1和2,3和4,5和6不相邻)?
为此,我认为我应该用这个约束来洗牌清单[1, 2, 3, 4, 5, 6]
:1和2,3和4,5和6是而不是相邻。例如,[1,2,4,6,3,5]是不可接受的,因为1和2彼此相邻。然后,我要将新订单应用于问题列表和答案列表。
正如有人新的节目,我只知道如何洗牌名单没有约束,就像这样:
question = [1, 3, 5, 2, 4, 6]
answer = ['G', 'Y', 'G', 'R', 'Y', 'R']
order = list(zip(question, answer))
random.shuffle(order)
question, answer = zip(*order)
任何帮助,将不胜感激!
你是什么意思“不相邻”?例子或例子? – nikpod
你能提供你到目前为止所尝试过的东西,并在问题中输出样本吗? – kuro
@nikpod“不相邻”,我的意思是像[1,2,3,5,4,6],[3,1,5,6,2,4]等是不可接受的,因为1和前者有2个相邻,后者有5个和6个。 – PsychGrad