Хорошо, извините, если моя проблема кажется немного грубой. Я попытаюсь объяснить это образно, надеюсь, это будет удовлетворительно.
10 детей.
5 ящиков.
Каждый ребенок выбирает три коробки.
Каждый ящик открыт:
- Если он содержит что-то, все дети, выбранные этим полем, получают 1 балл
- В противном случае никто не получает точку.
Мой вопрос в том, что я делаю жирным. Потому что в моем коде есть много детей и много ящиков.
В настоящее время я делаю следующее:
children = {"child_1" : 0, ... , "child_10": 0}
gp1 = ["child_3", "child_7", "child_10"] #children who selected the box 1
...
gp5 = ["child_2", "child_5", "child_8", "child_10"]
boxes = [(0,gp1), (0,gp2), (1,gp3), (1,gp4), (0,gp5)]
for box in boxes:
if box[0] == 1: #something inside
for child in box[1]:
children[child] += 1
В основном я беспокоюсь о цикле for, который назначает каждому ребенку дополнительную точку. Потому что в моем последнем коде у меня много детей, я боюсь, что это тоже замедлит программу.
Есть ли более эффективный способ для всех детей той же группы быстрее иметь свою точку?