-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