Revisão de listas

O que é impresso pelo seguinte trecho de código:

Vejamos o código acima pela ótica do codelens:

Activity: CodeLens 2 (aluna11_apelido_1)

No código acima b é uma referência ou apelido (= alias) para a mesma lista a que a está se referenciando.

O trecho de código a seguir cria um cópia (= clone) de a e b será uma referência a essa cópia.

Vejamos o que o codelens tem a dizer sobre o trecho de código acima.

Activity: CodeLens 4 (aula11_clone_1)

A fatia a[:] é uma cópia de a, uma fatia com todos os elementos de a. Lembre-se que o : é utilizado para definir uma fatia da lista. Por exemplo, a[1:3] produz a lista [1,2].

Criação de matrizes

Matrizes são estruturas bidimensionais (tabelas) com m linhas por n colunas muito importantes na matemática, utilizadas por exemplo para a resolução de sistemas de equações e transformações lineares.

Em Python, uma matriz pode ser representada como uma lista de listas, onde um elemento da lista contém uma linha da matriz, que por sua vez corresponde a uma lista com os elementos da coluna da matriz.

NumPy - Numerical Python

Dizem que, quando você usa Python, as baterias vem incluídas, pois há vários módulos a sua disposição. Um deles é o [NumPy](http://www.numpy.org/), que facilita operações com matrizes e torna o seu processamento mais eficaz. Mas usar matrizes como listas de listas é um recurso muito útil, inclusive para aprender mais sobre listas.

Qual o problema do seguinte pedaço de código para criação de uma matriz A com 5 linhas e 5 colunas com o valor 2 na posição [1][1] e zero nas demais posições?

Activity: CodeLens 5 (crie_matriz_0)

A variável linha_com_zeros contém uma referência à lista [0, 0, 0, 0, 0]. No trecho de código acima, na tentativa de cria uma matriz A, essa mesma referência é copiada 5 vezes. Assim, todas as linhas apontam para a mesma lista!

Para criarmos uma matriz é necessário criarmos 5 listas diferentes (uma para cada linha) como por exemplo:

Activity: CodeLens 6 (crie_matriz_1)

Podemos ainda criar uma matriz de zeros utilizando uma função como

Activity: CodeLens 7 (crie_matriz_2)

Veja a seguir uma versão errada da função crie_matriz(). Nessa versão cada linha da matriz é um apelido de uma mesma lista.

Activity: CodeLens 8 (crie_matriz_errada)

Você já fez das atividades dessa página