“Matrizes” em Python
Apesar de Python ser uma linguagem extremamente forte em tipos que manipulam conjunto de dados, não existe nativamente o tipo Matriz na linguagem!
Lista de Lista
Uma das opções é utilizar uma lista de lista (cujo o objeto ainda continua sendo uma lista)
>>> matriz = [[1,2,3],[4,5,6],[7,8,9]]
>>> matriz
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> type(matriz)
A representação seria basicamente como conhecemos uma matriz:
0 1 2
|-----|-----|-----|
0 | 1 | 2 | 3 |
|-----|-----|-----|
1 | 4 | 5 | 6 |
|-----|-----|-----|
2 | 7 | 8 | 9 |
|-----|-----|-----|
Acessando posicao da matriz em “linha e coluna”
Podemos facilmente fazer o acesso da posicao utilizando o conceito de “linhas e colunas”.
>>> matriz
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> matriz[0][0]
1
>>> matriz[2][1]
8
Manipulacao de matrizes
Como matrizes possuem duas ou mais dimensoes, podemos trabalhar com lacos para facilitar a manipulacao dos mesmos:
notas = [[5.0, 3.5, 7.5, 4.8, 6.5],
[4.1, 2.5, 9.0, 8.7, 6.8],
[8.5, 7.8, 9.8, 3.5, 1.3],
[3.5, 5.5, 2.5, 6.4, 2.8]]
#calcula a média
media = 0
#for para percorrer as linhas
for i in range(4):
#for para percorrer as colunas
for j in range(5):
media = media + notas[i][j]
media = media / 20
print(media)
Preenchimento de uma matriz
#Preenchimento de notas inteiras
notas = []
for i in range(3):
# cria linha vazia
linha = []
for j in range(5):
#vai adicionando as notas na linha
linha.append(int(input('Digite a nota [' + str(i) + ',' + str(j) + ']:')))
#adiciona a linha na matriz turma
notas.append(linha)
print('\nImpressao da matriz')
for i in range(3):
for j in range(5):
print("notas[%d][%d] = [%d]" % (i, j, notas[i][j]))
Referencias:
https://pt.stackoverflow.com/questions/205528/como-criar-uma-matriz-em-python