Форум сайта python.su
0
Выполнить обработку элементов прямоугольной матрицы A, имеющей N строк и M столбцов. Определить, сколько нулевых элементов содержится в верхних L строках матрицы
Я че-то намутила О__о помогите, пожалуйста 
matrix = [[1,2,-3,4,-5],[2,3,4,5,-6],[3,-4,0,-6,-7]] i=0 j=0 ks = 0 end = len(matrix) while(j!=end): if(i==end): j=j+1 i=0 if(j==end): break if(matrix[i][j]==0): i=0 j=j+1 ks=ks+1 continue i=i+1 print ('Количество столбцов, содержащих число 0 =',ks)
Отредактировано Bolula (Апрель 19, 2012 10:56:51)
Офлайн
Что-то странное ты намутила
Советую забыть о счетчиках переменных, это не C
И ещё, почитай PEP8
Вот рабочий, и, в некотором смысле, более правильный вариант:
matrix = [[0,2,0,0,-5],[2,3,0,5,-6],[3,-4,0,-6,-7]] L = 2 #Number of matrix rows to process count = 0 for row_number, row in enumerate(matrix): if row_number >= L: break print row_number for element in row: if element == 0: count += 1 print("Number of '0' elements in first "+str(L)+" rows: "+str(count))
Отредактировано prius (Апрель 19, 2012 15:06:20)
Офлайн
568
Bolula
Выполнить обработку элементов прямоугольной матрицы A, имеющей N строк и M столбцов. Определить, сколько нулевых элементов содержится в верхних L строках матрицы
Я че-то намутила О__о помогите, пожалуйста =)matrix = [[1,2,-3,4,-5],[2,3,4,5,-6],[3,-4,0,-6,-7]] i=0 j=0 ks = 0 end = len(matrix) while(j!=end): if(i==end): j=j+1 i=0 if(j==end): break if(matrix[i][j]==0): i=0 j=j+1 ks=ks+1 continue i=i+1 print ('Количество столбцов, содержащих число 0 =',ks)
matrix = [[1, 2,-3 ,4, -5], [2, 3, 4, 0, -6], [3,-4, 0,-6, -7], [3, 0, 0,-6, -7] ] L=3 temp=[] for row in matrix[:L]: [temp.append(x) for x in row] print temp.count(0)
Офлайн
3
на минимализм потянуло, простите
matrix = [[0, 2, 0, 0, -5], [2, 3, 0, 5, -6], [3, -4, 0, -6, -7]] L = 2 print reduce(lambda x, y: x + y.count(0), matrix[:L], 0)
Офлайн
7
Тоже тянет.
matrix = [[0, 2, 0, 0, -5], [2, 3, 0, 5, -6], [3, -4, 0, -6, -7]] L = 2 print( sum(matrix[:L],[]).count(0) )
Отредактировано Isem (Апрель 19, 2012 16:10:09)
Офлайн
568
import re matrix = [[0, 2, 0, 0, -5], [2, 3, 0, 5, -6], [3, -4, 0, -6, -7]] L = 2 print len(re.findall(r"0", str(matrix[:L])))
Офлайн