Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Нужна помощь с одной задачкой по python и пожалуйста с подробным решением, заранее спасибо.

Стефан Эрик Ученик (150), на голосовании 1 год назад
Задаются размер двумерного массива и затем сам двумерный массив. Необходимо найти сумму всех элементов данного массива.

Sample Input:

3 3
1 2 3
2 3 4
5 6 7
Sample Output:

33
Голосование за лучший ответ
аноним аноним Мыслитель (8150) 1 год назад
a,b=[int(i)for i in input().split()] #размеры: ввод одной строки, разделение по пробелу, строка->число
m=[[int(i)for i in input().split()]for _ in range(a)] #задание массива: ввод a строк, каждая их которых разбивается по пробелами преобразуется в набор чисел
print(sum(sum(m,[]))) #сумма: берется "сумма" (конкатенация, а не сложение) массива с пустым списком (преобразование из двумерного в одномерный - просто список всех чисел в массиве) и берется сумма уже отэтого

a,b=[int(i)for i in input().split()]
m=[[int(i)for i in input().split()]for _ in range(a)]
print(sum(sum(m,[])))
Костя МинаевУченик (195) 1 год назад
изучи map =)
аноним аноним Мыслитель (8150) Костя Минаев, через map длиннее код будет + лишние операции если что-то нужно сделать всего 2 раза - циклы, map - overkill, проще просто скопировать
Костя МинаевУченик (195) 1 год назад
Сравни:
a,b=[int(i)for i in input().split()]
a,b=map(int, input().split())
FooFaa me Ученик (248) 1 год назад
 def array_sum(n, m, arr): 
total = 0
for i in range(n):
for j in range(m):
total += arr[i][j]
return total

n, m = map(int, input().split())
arr = []
for i in range(n):
arr.append(list(map(int, input().split())))

print(array_sum(n, m, arr))
Поясню:

Сначала мы определяем функцию array_sum, которая принимает три аргумента: n, m и arr. n и m - это размеры массива, а arr - сам двумерный массив.

В функции мы создаем переменную total для отслеживания суммы всех элементов массива. Изначально она установлена в 0.

Для перебора элементов массива мы используем два вложенных цикла for. Внешний цикл выполняется n раз, а внутренний - m раз. На каждой итерации мы добавляем текущий элемент к total.

После выполнения циклов мы возвращаем значение total, которое является суммой всех элементов массива.

Вне функции мы читаем n и m из входных данных и сохраняем их в соответствующих переменных.

Затем мы создаем пустой список arr и с помощью цикла for считываем элементы массива из входных данных и сохраняем их в списке arr.

Наконец, мы вызываем функцию array_sum, передавая n, m и arr в качестве аргументов, и выводим результат.
Похожие вопросы