我如何計算這個嵌套字典的數字的總和或總點數。在蟒蛇
我嘗試了很多東西,但它并沒有一直作業得到回圈中的最后一個值,而不是每個等級或值。..................................................... ..................................................... ..................................................... ..................................................... ..................................................... .....................
# Input
students = {
"Ahmed": {
"Math": "A",
"Science": "D",
"Draw": "B",
"Sports": "C",
"Thinking": "A"
},
"Sayed": {
"Math": "B",
"Science": "B",
"Draw": "B",
"Sports": "D",
"Thinking": "A"
},
}
grades = {
"A": 100,
"B": 80,
"C": 40,
"D": 20
}
for main_key, main_value in students.items():
print("------------------------------")
print(f"-- Student Name => {main_key}")
print("------------------------------")
for subject, rank in main_value.items():
print(f"- {subject} => {grades[rank]} Points")
else:
# Can't caculate the total points
print(f"Total Points For {main_key} Is ###")
# Needed Output
"------------------------------"
"-- Student Name => Ahmed"
"------------------------------"
"- Math => 100 Points"
"- Science => 20 Points"
"- Draw => 80 Points"
"- Sports => 40 Points"
"- Thinking => 100 Points"
"Total Points For Ahmed Is 340"
"------------------------------"
"-- Student Name => Sayed"
"------------------------------"
"- Math => 80 Points"
"- Science => 80 Points"
"- Draw => 80 Points"
"- Sports => 20 Points"
"- Thinking => 100 Points"
"Total Points For Sayed Is 360"
uj5u.com熱心網友回復:
我想你有 90% 在那里。你只需要清理你的縮進,并修復一些小錯別字,但其余的基本上都很好。
students = {
"Ahmed": {
"Math": "A",
"Science": "D",
"Draw": "B",
"Sports": "C",
"Thinking": "A"
},
"Sayed": {
"Math": "B",
"Science": "B",
"Draw": "B",
"Sports": "D",
"Thinking": "A"
}
}
grades = {
"A": 100,
"B": 80,
"C": 40,
"D": 20
}
for main_key, main_value in students.items():
print("------------------------------")
print(f"-- Student Name => {main_key}")
print("------------------------------")
total = 0
for subject, rank in main_value.items():
print(f"- {subject} => {grades[rank]} Points")
total = grades[rank]
# Can't caculate the total points
print(f"Total Points For {main_key} Is {total}")
輸出:
------------------------------
-- Student Name => Ahmed
------------------------------
- Math => 100 Points
- Science => 20 Points
- Draw => 80 Points
- Sports => 40 Points
- Thinking => 100 Points
Total Points For Ahmed Is 340
------------------------------
-- Student Name => Sayed
------------------------------
- Math => 80 Points
- Science => 80 Points
- Draw => 80 Points
- Sports => 20 Points
- Thinking => 100 Points
Total Points For Sayed Is 360
uj5u.com熱心網友回復:
你可以這樣做:
students = {
"Ahmed": {
"Math": "A",
"Science": "D",
"Draw": "B",
"Sports": "C",
"Thinking": "A"
},
"Sayed": {
"Math": "B",
"Science": "B",
"Draw": "B",
"Sports": "D",
"Thinking": "A"
},
}
grades = {
"A": 100,
"B": 80,
"C": 40,
"D": 20
}
for main_key, main_value in students.items():
print("------------------------------")
print(f"-- Student Name => {main_key}")
print("------------------------------")
for subject, rank in main_value.items():
print(f"- {subject} => {grades[rank]} Points")
else:
print(f"Total Points For {main_key} Is {sum(grades[grade] for grade in main_value.values() if grade)}")
代碼的輸出將與您所需的輸出相匹配:
------------------------------
-- Student Name => Ahmed
------------------------------
- Math => 100 Points
- Science => 20 Points
- Draw => 80 Points
- Sports => 40 Points
- Thinking => 100 Points
Total Points For Ahmed Is 340
------------------------------
-- Student Name => Sayed
------------------------------
- Math => 80 Points
- Science => 80 Points
- Draw => 80 Points
- Sports => 20 Points
- Thinking => 100 Points
Total Points For Sayed Is 360
希望能幫助到你。
uj5u.com熱心網友回復:
為了幫助您澄清問題,它似乎不是關于嵌套字典中的值的總和,而是計算可迭代中鍵的映射值的總和。相同的解決方案可以應用于兩者,但添加示例來解釋術語。
以您的代碼為基礎,
students = {
"Ahmed": {
"Math": "A",
"Science": "D",
"Draw": "B",
"Sports": "C",
"Thinking": "A",
},
"Sayed": {
"Math": "B",
"Science": "B",
"Draw": "B",
"Sports": "D",
"Thinking": "A",
},
}
grades = {
"A": 100,
"B": 80,
"C": 40,
"D": 20,
}
現在我們將保存并維護每個學生的成績值的中間總和(每次迭代)
for student, report in students.items():
print("------------------------------"
print(f"-- Student Name => {student}")
print("------------------------------")
student_total = 0 # Set the initial total for each student as 0
for subject, grade in report.items():
print(f"- {subject} => {grades[rank]} Points")
student_total = grades[rank] # Add the value of the current grade to student's total
print(f"Total Points for {student} = {student_total}")
僅供參考:嵌套的值字典類似于:
students = {
"Ahmed": {
"Math": 100,
"Science": 20,
"Draw": 80,
"Sports": 40,
"Thinking": 100,
},
"Sayed": {
"Math": 80,
"Science": 80,
"Draw": 80,
"Sports": 20,
"Thinking": 100,
},
}
您也可以使用相同的方法在這里計算總和
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/512360.html
