Мне нужно выбрать 2 группы из 2 учеников, которые не говорят на одном языке без повторения.Каждый студент появляется только один раз.
У меня есть этот список
import random
from itertools import permutations
seq = [['Sham','Arabic'],['Amina', 'Arabic'], ['Bill', 'French'], ['Qing','Hindi']]
Мне нужно выбрать 4 группы из 2 учеников, которые не говорят на одном языке без повторения.
У меня есть эта функция:
def group (x, y):
res=[]
#N = len(seq)
for i in range( y):
while len(res) < y:
res = random.sample(x,k=y)
while res[i][1] == res[i-1][1]:
return group(x,y)
return res
Затем я применяю эти условия, чтобы получить окончательные результаты: один учащийся должен появиться только в одной группе:
final = []
for i in range(2):
pick = group (seq, 2)
if pick in final or pick[::-1] in final:
group(seq, 2)
pass
for i in pick:
for j in i:
if j in final:
group(seq, 2)
pass
else:
final.append(pick)
print (final)
Я все еще получаю неправильные результаты, один студентпоявляются более одного раза.ожидаемые результаты:
[ [['Sham','Arabic'],['Qing','Hindi']],
[['Bill', 'French'], ['Amina', 'Arabic']] ]
но что я получаю (притворство существовало дважды):
[ [['Sham','Arabic'],['Qing','Hindi']],
[['Bill', 'French'], ['Sham','Arabic']] ]