[0:12]Olá, pessoal! Bem-vindos novamente à nossa disciplina de Algoritmos e Programação de Computadores para a Univesp. É, essa é a nossa vídeo aula de número 8, onde a gente vai ver alguns conceitos adicionais de tipos de dados. É, na aula passada a gente terminou com o conceito de strings na linguagem Python, e nesta aula a gente começa com o aprendizado de listas, tuplas e os operadores. Então, vamos começar. Ah, então o que que é uma lista? Uma lista é uma sequência de objetos. É, essas, esses objetos podem ser de qualquer tipo. Ah, podem ser do tipo int, float, outras listas, inclusive Python permite que você misture, né, esses tipos diferentes dentro de uma mesma lista. Ah, os objetos, né, como eu falei, podem ser, eh, números, strings e outras listas, né, como acabei de falar. E no caso da linguagem Python, eh, uma lista é representada por objetos separados por vírgula e envoltos por colchetes, que são, ah, esses símbolos que estão aqui. Bom, então aqui a gente tem alguns exemplos, ah, de, de listas que são criadas na linguagem Python. Então, por exemplo, nesse, nessa primeira linha, eu tô criando, eh, uma, uma variável "pets" que é uma lista composta por três strings, eh, 'cão', 'gato' e 'peixe'. Aqui embaixo eu consulto o conteúdo desta variável e aí o meu interpretador me retorna a lista criada na linha de baixo. E aqui eu estou criando uma lista heterogênea chamada de "l" que é composta, então, pelo, eh, o primeiro elemento desta lista é o int 1. O segundo elemento é a string 'ab'. A terceira, eh, o terceiro elemento é uma outra lista vazia, porque você está abrindo e fechando o colchete sem nada ali dentro. E o último elemento é uma outra lista composta pelos elementos, pelos ints 1 e 2. E aí novamente, eu tô consultando o conteúdo dessa variável e o meu interpretador também me retorna embaixo essa lista criada. Bom, a gente tem alguns operadores que podem ser, eh, realizados, podem ser, eh, aplicados, ah, em listas. Eh, os quais, eh, alguns deles, tá, eh, eh, são, são perfeitamente possíveis, né, de você aplicar tanto com strings como também com listas. Então, por exemplo, na aula passada, a gente viu que colocar um nome da variável e, em seguida, entre colchetes um número, esse número representa um índice ou uma posição que vai nos indicar, então, vai me, vai nos retornar o elemento daquela posição da lista. Então, no caso, lembrando que "pets", a gente criou como uma lista, ah, como essa que está aqui, composta então pelos elementos 'cão', 'gato' e 'peixe', e aí aqui eu estou retornando o primeiro elemento desta lista, que pelo índice zero, e aí, ah, ele me retorna simplesmente o primeiro elemento, que é 'cão'. Também é possível, pessoal, você utilizar os índices negativos, da mesma maneira que a gente fez com, eh, com strings. Então, quando a gente usa número negativo lá nos índices, você tá acessando da direita para a esquerda. Então, aquela lista 'l' heterogênea que a gente criou, eh, aqui atrás, que era essa que tá aqui, ó. Eh, ela tem como último elemento a lista 1, 2. E para acessar esse elemento, a gente pode fazer 'l' entre colchetes -1. Então, a gente acessa este último elemento que é uma lista, ah, que, que contém os elementos 1, 2. Tá legal?
[6:17]Eh, aí, pessoal, a gente tem também, ah, uma diferença, né, um, um, um conceito, na verdade, importante que a gente viu que, no caso das strings, eh, quando você cria uma string, você não consegue alterar mais ela. Então, eu posso até mostrar aqui um exemplo para vocês. Se a gente cria, por exemplo, uma string chamada de "abc" e aí você tenta alterar o, o primeiro caracter, por exemplo, dessa string, mandando receber, por exemplo, o caracter 'x'. Se eu executar este, este código, ele vai dar um erro, porque aquele objeto string, ele não, ah, ele não pode ser alterado, quer dizer, a string ela é imutável. No caso de listas, pessoal, você já consegue fazer isso. Então, vamos ver um exemplo. Se eu crio, por exemplo, uma lista 'l' composta pelos elementos 1, 2 e 3, e aí eu faço, por exemplo, 'l' de zero recebe o número 4, por exemplo. Ah, então, se eu executo isso daqui, ele vai funcionar normalmente, né? E se eu quero mandar, por exemplo, imprimir essa lista, a gente vai conseguir verificar que a lista foi, de fato, alterada, antes valia 1, 2, 3, agora valia 4, 2 e 3. Então, eh, listas são mutáveis, você consegue fazer a alteração, como está aqui, eh, de um determinado elemento daquela lista já criada. Ah, então aqui, né, como eu já falei, né, no caso das strings são imutáveis, eu já mostrei isso para vocês, já falei sobre isso também, né, na, na, na aula passada. É, e aí essa também é a principal diferença, pessoal, com um novo tipo de dado que a gente vai ver nesta aula, que são as tuplas. As tuplas, pessoal, eh, são iguais as listas, só que a, a única diferença é que elas são imutáveis. Então, se você quer quer criar uma lista que não deve ser alterada após a sua criação, você pode criar uma tupla. E como que a gente cria uma tupla? É, simples, é, basta você, é, substituir os colchetes por parênteses. Então, por exemplo, aqui eu tô criando uma tupla chamada de "dias", eh, que contém os, os elementos que são strings, né, 'seg', 'ter' e 'qua', né? E se eu quero, quisesse, por exemplo, fazer uma alteração neste terceiro elemento, eh, fazendo isso daqui, né, "dias", ah, do índice 2 receber 'qui', por exemplo. É, ele vai, ele vai me acusar um erro, tá? Por quê? Porque tuplas, eh, são imutáveis. Tudo bem? Eh, existem também vários métodos que podem ser usados na, com listas. Eh, então você pode chamar, por exemplo, a função 'append' numa lista já criada que vai adicionar um, um elemento no final desta lista.
[10:00]Né? Então, ele vai pegar esse elemento 'cão' e vai adicionar aqui no final da lista, eh, de "pets". E aí a gente tem outros métodos que podem ser também usados. Então, a gente tem o método 'count' que vai contar quantos elementos a gente tem na lista, o 'index' que vai, eh, retornar o elemento de uma determinada posição que você passa como parâmetro para essa função. O 'insert' para inserir um elemento numa determinada posição. Do, da lista, tá? Então, ele vai inserir aqui a, o objeto galinha. Entre vários outros métodos, tá? Que podem ser usados, ah, com listas. Olha aqui alguns exemplos, né? Então, eu estou contabilizando quantas, eh, quantos elementos eu tenho, ah, quantos elementos 'cão' eu tenho na minha lista de "pets"? Então, ele me retorna duas unidades. Eh, eu quero retornar, por exemplo, qual que é a posição de, do elemento 'gato' nessa lista? Então, ele vai me retornar, eh, o, o índice correspondente. Quero inserir, por exemplo, o elemento 'galinha' na primeira, eh, na, na segunda, né, posição, né, que começa com zero, na segunda posição do, da lista, tá? Então, ele vai inserir aqui a, o objeto galinha. Eh, 'pop', pessoal, vai te retornar o, o último elemento da lista, tá? Então, ele vai remover e vai retornar aquele último elemento que é esse aqui, né? Eh, lá daquela lista de "pets". O 'remove' remove um elemento que você passa como parâmetro. Então, quero remover, eh, 'peixe', ele vai retornar, eh, remover, né, esse, eh, esse elemento da, lá da lista. A função 'reverse', ah, vai fazer a, vai, eh, mudar, né, vai, eh, fazer o reverso daquela lista, né, colocar ela de, o último vir o primeiro, né, e assim por diante, tá? E a função 'sort', por fim, faz a ordenação, eh, alfabética daquela lista, ou se, se for strings, e, no caso, se for, eh, inteiros ou floats, ele vai fazer uma ordenação, eh, numérica, né, crescente daquela lista, tá bom? Então, é isso, pessoal, eh, essa aí foi a nossa aula sobre listas, eh, tuplas e operadores. Ah, então o, eu peço que vocês tentem dar uma estudada melhor nessas funções, testem elas, né? Eh, para verificar aí o funcionamento de cada uma. E, e é isso daí, a gente se vê, então, na próxima vídeo aula.



