擅长:python、mysql、java
<p>为了按学生的<em>姓氏</em>排序,首先必须从用作字典键的<em>全名</em>中提取。以下功能应该能够做到这一点:</p>
<pre><code>def get_surname(full_name):
return full_name.split()[-1]
</code></pre>
<p>然后您可以对字典内容进行如下迭代:</p>
<pre><code>for name in sorted(storedlist, key=get_surname):
print("{} --> {}".format(name, storedlist[name]))
</code></pre>
<hr/>
<p>还有几点建议:</p>
<ol>
<li><p>在<code>frq</code>函数中,应该用<code>pass</code>替换<code>skip</code>,这是一个有效的Python语句。</p></li>
<li><p>除了使用不同的输入文件名之外,不必定义几个相同的函数(<code>clssa</code>、<code>clssb</code>、<code>clssc</code>),只需编写一个将文件名作为参数的函数(并为该函数提供一个更好的名称):</p>
<pre><code>def print_scores(filename):
f = open(filename, 'rb')
storedlist = pickle.load(f)
...
</code></pre>
<p>在函数<code>clssq</code>中,然后替换</p>
<pre><code>if clss=='a':
clssa()
elif clss=='b':
clssb()
elif clss=='c':
clssc()
</code></pre>
<p>由</p>
<pre><code>filename = {'a': 'Class6A.txt',
'b': 'Class6B.txt',
'c': 'Class6C.txt'}[clss]
print_scores(filename)
</code></pre></li>
</ol>