Você está aqui: Python ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como criar uma matriz bidimensional ou tridimensional em PythonQuantidade de visualizações: 4358 vezes |
Uma das dúvidas mais frequentes que surgem entre os visitas do site é como declarar e inicializar uma matriz de n linhas por m colunas, ou seja, uma matriz bidimensional ou tridimensional. Como a linguagem Python é dinamicamente tipada, e adiciona elementos a um vetor ou matriz também de forma dinâmica, a tarefa de se criar matrizes NxM nem sempre é uma tarefa trivial. Nessa dica eu mostrarei duas formas comumente empregadas para a criação de matrizes 2D e 3D. Veja a primeira forma: def main(): # vamos declarar e construir uma matriz de duas linhas # e três colunas linhas = 2 colunas = 3 matriz = [[0 for x in range(colunas)] for y in range(linhas)] # vamos exibir as linhas e colunas da matriz for i in range(len(matriz)): for j in range(len(matriz[i])): print(matriz[i][j], end=' ') print() # vamos atribuir uma valor à segunda linha, terceira coluna matriz[1][2] = 7 # vamos exibir a matriz novamente print() for i in range(len(matriz)): for j in range(len(matriz[i])): print(matriz[i][j], end=' ') print() if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: 0 0 0 0 0 0 0 0 0 0 0 7 Veja agora a segunda abordagem, na qual usamos a função append() da classe List e dois laços for para montar listas aninhadas. Veja: def main(): # vamos declarar e construir uma matriz de duas linhas # e três colunas linhas = 2 colunas = 3 matriz = [] # cria uma matriz vazia for i in range(linhas): linha = [] # cria uma linha vazia for j in range(colunas): linha.append(0) # adiciona o valor 0 matriz.append(linha) # adiciona a linha na matriz # vamos exibir as linhas e colunas da matriz for i in range(len(matriz)): for j in range(len(matriz[i])): print(matriz[i][j], end=' ') print() # vamos atribuir uma valor à segunda linha, terceira coluna matriz[1][2] = 7 # vamos exibir a matriz novamente print() for i in range(len(matriz)): for j in range(len(matriz[i])): print(matriz[i][j], end=' ') print() if __name__== "__main__": main() O resultado deste código é o mesmo do anterior. Veja agora como podemos criar uma matriz 3D, ou seja, tridimensional: def main(): # vamos declarar e construir uma matriz de duas linhas, # três colunas e profundidade quatro linhas = 2 colunas = 3 profundidade = 4 matriz = [] # cria uma matriz 3D vazia for i in range(linhas): # criamos as linhas matriz.append([]) for j in range(colunas): # criamos as colunas matriz[i].append([]) for k in range(profundidade): # criamos a profundidade matriz[i][j].append(0) # hora de testar a matriz. Vamos atribuir um valor na segunda # linha, terceira coluna e profundidade quatro matriz[1][2][3] = 15 # e agora vamos obter o valor de volta print("O valor é:", matriz[1][2][3]) # vamos exibir a matriz 3D toda print(matriz) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: O valor é: 15 [[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 15]]] Para finalizar, veja a forma compacta de se criar uma matriz 3D em Python usando "list comprehensions": def main(): # vamos declarar e construir uma matriz de duas linhas, # três colunas e profundidade quatro linhas = 2 colunas = 3 profundidade = 4 # cria a matriz 3D e a preenche com zeros usando list comprehensions # se possível, coloque tudo em uma linha, pois a idéia é a usar a forma # compacta matriz = [[[0 for k in range(profundidade)] for j in range(colunas)] for i in range(linhas)] # hora de testar a matriz. Vamos atribuir um valor na segunda # linha, terceira coluna e profundidade quatro matriz[1][2][3] = 15 # e agora vamos obter o valor de volta print("O valor é:", matriz[1][2][3]) # vamos exibir a matriz 3D toda print(matriz) if __name__== "__main__": main() |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |