Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 29, 2017 22:12:02

HIST
Зарегистрирован: 2017-10-21
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Среднее арифметическое массива и действия с ним

Задание: Посчитать количество элементов в каждой строке массива и количество элементов всего массива, которые превышают среднее арифметическое матрицы.

 import random
from random import *
m=int(input("Кол-во столбцов: "))
n=int(input("Кол-во строк: "))
if m>0 and n>0:
    a = []
    for r in range(m):
        a.append([])
        for c in range(n):
            a[r].append(randint(-99,99))
    average=0
    for r in a:
        print(("| ""{:^4}"*len(r)+"|").format(*r))
        average+=sum(r)
    print("Среднее арифметическое массива: ",average)
   for i in a:                   # проблема
        res1=0
        if i>average:
            res1+=1
else:
    print("Неверный массив")
Среднее арифметическое я то посчитал а вот найти какие элементы больше его не выходит. мой способов выдает ошибку:
TypeError: ‘>’ not supported between instances of ‘list’ and ‘int’

Отредактировано HIST (Окт. 29, 2017 22:13:09)

Офлайн

#2 Окт. 29, 2017 22:39:03

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Среднее арифметическое массива и действия с ним

а - список списков
как то так

     for x in a:
        for i in x:# проблема

Отредактировано Romissevd (Окт. 29, 2017 22:39:54)

Офлайн

#3 Окт. 29, 2017 22:46:12

HIST
Зарегистрирован: 2017-10-21
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Среднее арифметическое массива и действия с ним

Romissevd
а - список списковкак то так
Спасибо!

Офлайн

#4 Окт. 29, 2017 23:07:16

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Среднее арифметическое массива и действия с ним

 >>> m = 3
>>> n = 4
>>> def matrix(m,n):
	return [[randint(-100,100) for i in range(n)] for j in range(m)]
>>> lst = matrix(m,n)
>>> lst
[[-45, -14, -32, 70], [72, 26, -46, 63], [-39, 56, -23, -21]]
>>> mid = [sum(i)/len(i) for i in lst]
>>> mid
[-5.25, 28.75, -6.75]
>>> for i in range(len(mid)):
	print(list(filter(lambda x: x > mid[i],lst[i])))
	
[70]
[72, 63]
[56]
>>> 

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version