Используя Python, я хочу случайно выбрать людей из списка и поместить их в группы по 5 без выбора одного и того же человека более одного раза. Люди определяются по 2 критериям: возраст и пол. Список людей выглядит следующим образом:Выбор случайных значений из списка до тех пор, пока они не исчезнут в Python
PPL = [1, 4, 6], [2, 5, 5], [3, 7, 3], [4, 2, 8], [5, 4 , 6]
где 3 номера в каждом списке представляют собой: возрастную категорию (1-5), # мужчин, число женщин. Я понимаю, что группы 5 не имеют большого значения, так как все, что мне нужно сделать, это сделать случайный список (а затем я могу подсчитать 5 за раз), но я не уверен, как сделать случайный список без повторное использование людей. Какие-либо предложения?
Я начал с нижеследующим (который на самом деле просто печатает оставшихся самцов и самок):
import random
PPL = [1, 4, 6], [2, 5, 5], [3, 7, 3], [4, 2, 8], [5, 4, 6]
age = range(0, 6)
gender = [1, 2]#1 = male, #2 = female
randomAge = random.choice(age)
randomGender = random.choice(gender)
count = 0
PPLcounter = 0
for P in PPL:
while P[randomGender] > 0:
PPL[PPLcounter][randomGender] = P[randomGender] - 1
MRemaining = PPL [PPLcounter][1]
FRemaining = PPL [PPLcounter][2]
count = count+1
print count, MRemaining, FRemaining
PPLcounter += 1
Я не понимая проблемы. Вы не можете просто использовать 'random.shuffle' на' PPL' и затем перебирать список по списку? Это было бы случайным. –
правильный. Я согласен с @JoelCornett. Вы можете каждый раз появляться, чтобы быть уверенным, что не получите тот же элемент снова. – karthikr
Я смущен тем, что должен содержать список случайных людей. – ecline6