Mandar um café pro programador

Pode me ajudar a transformar cafeína em código?

Matriz em Python: Lista dentro de Lista

Neste tutorial de nosso Curso de Python, vamos aprender o que são matrizes, para que servem, porque usamos, como criar uma matriz, que são listas dentro de listas.

Leia também:
  1. Apostila Python Progressivo (PDF)
  2. Certificado do curso (trabalhar e ganhar dinheiro com Python)

Lista dentro de Lista

Até o momento, em nossas listas, colocamos dados como números inteiros, float e strings.
Porém, é possível colocar também uma lista, dentro de uma lista.

A lista:
  • notas = [10, 9, 8]

Possui apenas três elementos, três inteiros. Uma linha e 3 colunas, ok ?

Agora vamos supor que temos três alunos, onde cada aluno possui 3 notas.
Podemos inicializar uma lista com as notas desses três alunos da seguinte maneira:

notas= [ [10, 9, 8],
              [9, 8, 7],
              [8, 10, 5] ]

Ou seja, temos 3 listas dentro de uma lista.
Temos 3 linhas e 3 colunas (tente ver como uma matriz de elementos, uma tabela).


Como acessar elementos de uma Matriz

As notas do primeiro aluno estão na lista notas[0]
As notas do segundo aluno estão na lista notas[1]
As notas do terceiro aluno estão na lista notas[2]

Para acessar a primeira nota do primeiro aluno: notas[0][0]
Para acessar a segunda nota do primeiro aluno: notas[0][1]
Para acessar a terceira nota do primeiro aluno : notas[0][2]
Para acessar a primeira nota do segundo aluno: notas[1][0]
Para acessar a segunda nota do segundo aluno: notas[1][1]
Para acessar a terceira nota do segundo aluno : notas[1][0]
Para acessar a primeira nota do terceiro aluno : notas[2][0]
Para acessar a segunda nota do terceiro aluno : notas[2][1]
Para acessar a terceira nota do terceiro aluno  : notas[2][2]

Para calcular a média das notas do primeiro aluno
(notas[0][0] + notas[0][1] +notas[0][2]) / 3

Para calcular a média das notas do segundo aluno
(notas[1][0] + notas[1][1] +notas[1][2]) / 3

Para calcular a média das notas do terceiro aluno
(notas[2][0] + notas[2][1] +notas[2][2]) / 3



Exercício de Matriz em Python

Crie uma matriz 4 x 4 (ou seja, 4 linhas e 4 colunas, ou seja, 4 listas dentro de uma lista maior).
Popule essa lista com números de 0, 1, 2, 3 etc

Como inicializar uma matriz

Usamos um laço for para inicializar uma matriz.

Por exemplo, para inicializar uma lista de 4 elementos, todos 0, fazemos:
  • [0 for i in range(4)]

Para inicializar uma matriz 4x4 então, basta repetirmos o código anterior dentro de outro for:
  • matriz = [ [0 for i in range(4)] for j in range(4)]

Inicializamos uma variável com valor 4.
Para percorrermos uma matriz, temos que usar laços aninhados, ou seja, for dentro de for.
O primeiro for percorre as linhas, o de dentro percorre as colunas.

Para mudarmos cada valor da matriz, a partir de 0, fazemos:


Como exibir uma matriz

Você pode imprimir uma matriz de nome matrix simplesmente fazendo: print(matrix)

Porém, o Python vai imprimir tudo numa mesma linha, muito feio.
Para exibirmos linha por linha, vamos novamente usar o laço for aninhado de outro for.

O primeiro for, de cima, vai primeiro começar na primeira linha.
O laço for aninhado, vai imprimir cada coluna, ou seja, cada elemento da linha.

Após terminar de imprimir a linha, ou seja, quando o laço for de dentro termina, damos um print() para dar uma quebra de linha quando terminamos de imprimir a linha.

Nosso código, então, fica:

matriz = [ [0 for i in range(4)] for j in range(4)]
count=0

for linha in range(4):
    for coluna in range(4):
        matriz[linha][coluna] = count
        count += 1

for linha in range(4):
    for coluna in range(4):
        print("%4d" % matriz[linha][coluna], end='')
    print()

Jogo em Python

Crie um jogo da velha em Python, usando uma matriz 3x3.
Você, usuário, que vai jogar, com os dois jogadores.

Um comentário:

  1. Grande mestre, só não entendi o motivo daquele "0" no inicio do "for i in range(4)" quando você está definindo a matriz e não identifiquei em que parte do texto explicar a utilidade dele já que quando aprendemos o "for" não vemos nenhum parâmetro indo antes dele. Poderia explicar por gentileza?

    ResponderExcluir

Bora fazer evoluir o ensino da Programação no Brasil ?

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo