Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
# -*- coding: cp1252 -*- def conta(matriz,x): #[[0,1,2],[3,4,5],[6,7,8]] contador = 0 for i in range(len(matriz)): for j in range(len(matriz[0])): if matriz[i][j] == x: contador += 1 return contador def transpor(matriz): #Descobre quantas linhas ha na matriz passada como parametro #Lembrando que uma matriz é uma lista de listas #onde cada posicao guarda uma linha da matriz #como o len() retorna o numero de posicoes / tamanho de uma variavel, #no caso de matrizes (listas dentro de listas) o valor retornado pelo len() #equivale ao número de linhas da matriz. Nlin = len(matriz) #E em uma matriz, há pelo menos uma linha. #E todas as linhas possuem a mesma quantidade de itens, #pois o número de colunas da matriz é sempre igual para todas as linhas. #Então, tenho certeza que a posição matriz[0] sempre será não-nula, #e terá número de posições igual a todas as outras linhas da matriz (caso existam) #e esse número será equivalente ao número de colunas da matriz, #e mais uma vez, equivalente ao retorno da função len() #quando aplicada sobre a primeira linha da matriz Ncol = len(matriz[0]) #Essa variavel vai guardar o meu resultado: a matriz transposta #reparem que o return la embaixo retorna ela. #Ela começa como uma lista vazia. transposta = [] #Sabendo que uma matriz qualquer possui dimensões Nlin x Ncol (que eu descobri lá em cima), #o que eu faço aqui é dimensionar a minha matriz transposta, com dimensões invertidas (Ncol x Nlin). #E preencho cada posição dela com zeros (um valor default para ser substituido mais à frente). #Dessa forma, eu não altero a matriz original. #A abordagem será ir calculando cada elemento da transposta consultando a matriz original. for i in range(Ncol): transposta.append([0]*Nlin) #Agora, finalmente, eu faço com que o elemento i,j da transposta (que originalmente é sempre zero) #seja igual ao elemento j,i da matriz original. #para isso eu vario os indices i e j usando um for aninhado a outro, até o numero de linhas e colunas #da matriz original, que são iguais respectivamente ao numero de colunas e linhas da matriz transposta. for i in range(Nlin): for j in range(Ncol): transposta[j][i] = matriz[i][j] #Aqui a minha matriz transposta é retornada pela função, após preenchida. return transposta
Compartilhar