回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>在我们的项目中,我们使用了一个嵌套字典,比如:</p>
<pre><code>line4 = {'fmlast14': {'quiz1': 100, 'quiz2': 100,
'lab1': 100, 'lab2': 100, 'lab3': 100, 'lab4': 100, 'lab5': 75,
'exam0': 92}}
</code></pre>
<p>下一步,他让我们“计算平均测验、实验室和考试成绩。使用标签的通用前缀查找单个测验、实验室和考试分数。例如,要计算'fmlast12'的平均实验室分数,请将与前缀为'lab'的五个标签相关联的分数相加,然后除以5。“</p>
<p>我明白他在说什么,但我不明白我该怎么添加那些只有“测验(x)”或“实验室(x)”前面的元素。你知道吗</p>
<p>在本部分之前,我们应该读取第一行并将其标签存储在一个列表中(我们正在读取一个名为分数.txt
然后我们应该阅读后面的每一行,并使用嵌套字典存储其内容。到目前为止我得到的是:</p>
<pre><code>def read_scores(filename):
#with open(filename, 'r') as f:
#first_line = f.readline()
f = open(filename)
lines = f.readlines()
lines[1:]
with open(filename, 'r') as f:
second_line = f.readline()
second_line[2:]
line2 = { 'fmlast12' : {'quiz1' : 66, 'quiz2' : 100, 'lab1' : 100, 'lab2' : 100, 'lab3' : 75, 'lab4' : 75, 'lab5' : 75, 'exam0' : 86}}
line3 = { 'fmlast13' : {'quiz1' : 100, 'quiz2' : 0, 'lab1' : 100, 'lab2' : 100, 'lab3' : 0, 'lab4' : 50, 'lab5' : 75, 'exam0' : 68}}
line4 = { 'fmlast14' : {'quiz1' : 100, 'quiz2' : 100, 'lab1' : 100, 'lab2' : 100, 'lab3' : 100, 'lab4' : 100, 'lab5' : 75, 'exam0' : 92}}
def write_report(filename):
line2 = { 'fmlast12' : {'quiz1' : 66, 'quiz2' : 100, 'lab1' : 100, 'lab2' : 100, 'lab3' : 75, 'lab4' : 75, 'lab5' : 75, 'exam0' : 86}}
sum(line2.values())
c = defaultdict(int)
for d in line2:
c[d['quiz1']] += d['amt']
</code></pre>