У меня есть вложенный массив. Мне нужно получить сумму кредитных часов. Кредитные часы находятся в позициях [2] и [5] соответственно. Как мне добиться этого, используя цикл for в python? Я не разбираюсь в 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)
@BTables Я обновил свой вопрос.
The credit hours are in position [2] and [5] respectively.
Поэтому я предполагаю, что вы хотите только суммировать int
egers по индексам 2
и 5
.
[ "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
nd и 5
th позиции, например:
>>> 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
.
я хочу суммировать ВСЕ целые числа в этих позициях и получить в общей сложности 200 кредитных часов. Не в одном массиве. Поэтому мне нужен цикл for, который будет добавлять для каждого массива, а затем добавлять их после добавления для каждого массива. Надеюсь, теперь ты меня понял.
Хорошо, я редактирую свой ответ:
Просто сделайте это, если вам нужна общая сумма:
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}
Что вы пробовали до сих пор, что не работает?