-1
我试图编写一个程序,要求学生姓名,一些其他数值,并通过它们的数值将它们分配给组,以使所有组都为接近尽可能相等(通过获取列表中最高的下一个值,并将其分配给下一个组,等等)。在python循环中有一个不断变化的变量
但是,我需要将它们的编号保存到某个变量以及它们的名称中,然后打印出该组的列表。 为此,我需要一个变量,每次循环添加另一个学生时都会变化。我还需要对这些数字进行排序,然后以某种方式回复它们在被分组后分享的名称,并且我不确定如何执行其中的任何操作。有没有办法做到这一点,我将不得不使用另一种语言?
这是我到目前为止的代码:
from easygui import *
times = 0
name = 0
s_yn = ynbox("Would you like to enter a student?")
while s_yn == 1:
msg = "Student's Information"
title = "House Sorting Program"
fieldNames = ["Name", "Grade","Athleticism (1-10)","Intellect (1-10)","Adherance to school rules (1-10)"]
fieldValues = []
fieldValues = multenterbox(msg,title, fieldNames)
times = times + 1
ath = fieldValues[2]
int_ = fieldValues[3]
adh = fieldValues[4]
ath = int(ath)
int_ = int(int_)
adh = int(adh)
total = ath+int_+adh
s_yn = ynbox("Would you like to enter a student?")
您有问题要问? – zeantsoi
你是对的,我的不好 –
我认为部分答案可能是使用[defaultdict](https://docs.python.org/3/library/collections.html#collections.defaultdict),它默认为一个空的数组,然后按照他们的总分添加学生的姓名。例如'my_default_dict [合计] .append(student_name)'。只能想到尝试将它们分组并使它们尽可能地得分的天真方式。 – freebie