您好,我最近开始编程并遇到一个关于练习的练习。 练习:(https://github.com/exercism/xpython/tree/master/grade-school?)
我无法通过最后一次测试。 它要求输出采用以下方式:
sorted_students = {3 :(“Kyle”,),4 :(“Christopher”, “珍妮弗”,),6 :(“卡里姆”,)}
我将信息存储在字典中,其中成绩为关键字,学生包含在集合中作为值。然而,最后一个测试想要字典中的值是某种列表,我不知道如何创建它。 到目前为止,我的解决方案输出正确的值,并在值周围添加[]括号。我得到的错误如下:
{3:('Kyle',),4:('Christopher','Jennifer'),6:('Kareem',)}!= {3: [('Kyle',)],4:[('Christopher',),('Jennifer',)],6:[('Kareem',)]}
我的代码如此:
class School:
def __init__(self,name):
self.name = name
self.db={}
def add(self,student, grad):
if grad not in self.db:
self.db[grad]={student}
else:
self.db[grad].add(student)
def grade(self,grad):
if grad not in self.db:
return set()
else:
return self.db[grad]
def sort(self): #where I fail
newdict={} #new dictionary
for i in self.db:
newdict[i]=[(k,) for k in self.db[i]] #converst from set to list
return newdict
答案 0 :(得分:0)
测试需要一个将整数映射到元组的字典。注意圆括号(这表示一个元组)。
你想要的排序方法:
return {g:tuple(s for s in self.db[g]) for g in self.db}