如何在嵌套列表中总结学分

How to sum credit hours in a nested list

我有一个嵌套数组。我需要获得学分总和。学分分别在位置 [2] 和 [5]。如何使用 python 中的 for 循环实现此目的?我不熟悉 Numpy。

marks = [   
    [ "MR. JONES", "ACCT203", 2, 3.0, "CIS100", 3, 2.5 ],
    [ "SKARE EEEY", "ACCT203", 2, 2.5, "BUS123", 2, 3.0 ],
    [ "HALO WEEN", "ACCT300", 5, 2.0, "ACCT301", 2, 1.5 ],
    [ "BOB KATZ", "ACCT300", 5, 1.0, "BUS278", 3, 4.0 ],
    [ "ANNIE BANANE", "ACCT300", 5, 0.0, "CIS223", 3, 1.5 ],
]

我所能做的就是打印它们。我无法做到这一点。

for credit_hours in marks:
    cred_hours_part_one = credit_hours[2]
    cred_hours_part_two = credit_hours[5]
    print(cred_hours_part_one)
    print(cred_hours_part_two)

The credit hours are in position [2] and [5] respectively.

所以我假设您只想对索引 25.

处的 integers 求和
[ "MR. JONES", "ACCT203", 2, 3.0, "CIS100", 3, 2.5 ]

要从嵌套的 list 中获取单个 list,您只需从其索引中获取它,例如:

>>> marks[0] # ...will give you...
[ "MR. JONES", "ACCT203", 2, 3.0, "CIS100", 3, 2.5 ]

所以现在你只需要将它的第 2 和第 5 个位置相加,例如:

>>> marks[0][2] + marks[0][5]
5

如果你想收集所有的总和,你只需要使用list理解...

list_of_the_sums_of_the_marks = [mark[2] + mark[5] for mark in marks]

...然后总结...

sum(list_of_the_sums_of_the_marks)

我建议您阅读有关 nested lists 的内容。

如果你想要总和就这样做:

total = sum([mark[2] + mark[5] for mark in marks])
print(total)
32

或者如果你想要一个漂亮的字典中每个元素的总和:

results = {mark[0]: mark[2] + mark[5] for mark in marks}
print(results)
{'MR. JONES': 5, 'SKARE EEEY': 4, 'HALO WEEN': 7, 'BOB KATZ': 8, 'ANNIE BANANE': 8}