在Dictionary python中创建格式化的值

时间:2014-11-14 16:33:21

标签: python dictionary

您好,我最近开始编程并遇到一个关于练习的练习。 练习:(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

1 个答案:

答案 0 :(得分:0)

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

你想要的排序方法:

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