回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<pre><code>def getSortedKeyList(dl):
kl = list(dl.items())
kl.sort()
return kl
def tupleListToDict(a):
b = {}
for k, v in a:
b[k] = b.get(k, [])+v
return b
def main():
gradeList = [('Zaphod', [33, 20]), ('Zaphod', [75, 48]), \
('Slartibartfast', []), ('Trillian', [98, 88]), \
('Trillian', [97, 77]), ('Slartibartfast', []), \
('Marvin', [2000, 500]), ('Authur', [42, 20]), \
('Authur', [64]), ('Trillian', [99]), \
('Marvin', [450]), ('Marvin', [550]), \
('Agrajag', []), ('Agrajag', []), ('Agrajag', [0]), \
('Ford', [50]), ('Ford', [50]), ('Ford', [50])]
print('\t', '\t', "Grade", '\t')
print('\t', "Name", '\t', "Count", '\t', "Average")
print("-----------------------------------------")
dicList = tupleListToDict(gradeList)
dicList = getSortedKeyList(dicList)
for k, v in dicList:
print(k, len(v), '\t', sum(v)/len(v))
</code></pre>
<p>我正试着用字典做一张桌子。首先,我将元组转换为dictionary,并按键对dictionary进行排序。接下来,我将尝试打印出(keys,num of keys,average)。然而,当我尝试对平均部分做sum(v)/len(v)时,我得到的除法是零误差。为了避免这个错误,我尝试将字典中的空值返回到0,但是我不知道怎么做。请帮忙。你知道吗</p>