2014-11-14 25 views
0

您好,我最近开始编程,并遇到一个有关exerciseism练习的小问题。 练习题:(https://github.com/exercism/xpython/tree/master/grade-school?)在Dictionary中创建格式化值python

我无法让它通过最后的测试。 它要求的输出是按以下方式:

sorted_students = {3:( “凯尔”,),4:( “克里斯托弗”, “珍”,),6:( “天钩” ,)}

我将信息存储在字典中,成绩是关键字,学生包含在集合中作为值。然而,最后的测试希望字典中的值是某种列表,我不知道如何创建它。 到目前为止,我的解决方案输出正确的值并在值周围增加[]括号。我得到的错误如下:

{3:('Kyle',),4 :('Christopher','Jennifer'),6 :('Kareem',)}!= {3: [( '凯尔',)],4:[( '克里斯托弗',),( '珍',)],6:[( '卡里姆',)]}

我的代码,以便:

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

这是一个字典'{INT:元组}'。见例如https://docs.python.org/2/tutorial/datastructures.html#tuples-and-sequences – jonrsharpe 2014-11-14 16:38:28

回答

0

测试需要一个将整数映射到元组的字典。注意圆括号(这表示一个元组)。

在您的排序方法

你想:

return {g:tuple(s for s in self.db[g]) for g in self.db}