LA – Python – Aula 07B – “Matrizes”

“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
http://www2.ic.uff.br/~vanessa/material/prog-python/07-Matrizes.pdf

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s