Você está aqui: Python ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como criar uma matriz bidimensional ou tridimensional em PythonQuantidade de visualizações: 4572 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 |





