このプロジェクトでは、次のようなネストされた辞書を使用しています。
line4 = {'fmlast14': {'quiz1': 100, 'quiz2': 100,
'lab1': 100, 'lab2': 100, 'lab3': 100, 'lab4': 100, 'lab5': 75,
'exam0': 92}}
次のステップで、彼は「クイズ、ラボ、および試験の平均スコアを計算します。ラベルの共通のプレフィックスを使用して、個々のクイズ、ラボ、および試験のスコアを見つけます。たとえば、ラボの平均スコアを計算するには、 'fmlast12'、プレフィックス 'lab' を持つ 5 つのラベルに関連付けられたスコアを合計し、5 で割ります。"
彼の言っていることは理解できますが、前に「quiz(x)」または「lab(x)」しかない要素を追加する方法がわかりません。
この部分の前に、最初の行を読み取り、そのラベルをリストに格納することになっていました (score.txt というテキスト ファイルを読み取っています)。次に、後続の各行を読み取り、ネストされた辞書を使用してその内容を格納することになっていました。私がこれまでに得たもの:
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']