如何在嵌套列表中对学分求和

How to sum credit hours in a nested list

提问人:CoderS 提问时间:4/10/2022 最后编辑:Wai Ha LeeCoderS 更新时间:4/10/2022 访问量:37

问:

我有一个嵌套数组。我需要获得学分的总和。学分分别位于 [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)
Python 数组嵌 套列表

评论

0赞 BTables 4/10/2022
到目前为止,您尝试过哪些不起作用的方法?

答:

1赞 FLAK-ZOSO 4/10/2022 #1

学分分别位于 [2] 和 [5] 的位置。

因此,我假设您只想对 indexes 和 处的 egers 求和。int25

[ "MR. JONES", "ACCT203", 2, 3.0, "CIS100", 3, 2.5 ]

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

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

所以现在你只需要求和 它的 nd 和 th 位置,例如:25

>>> 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)

我建议你阅读一些关于嵌套列表的内容。

评论

0赞 CoderS 4/10/2022
我想要将这些位置的所有整数相加,并得到总共 200 个学分。不在单个数组中。所以我需要一个 for 循环,它将为每个数组添加,然后在每个数组添加后添加它们。我希望你现在能得到我。
0赞 FLAK-ZOSO 4/10/2022
好的,我正在编辑我的答案:
0赞 afuenzalida 4/10/2022 #2

如果您想要总和,请执行此操作:

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}