WEBVTT 00:00:00.000 --> 00:00:04.000 Eu espero que você esteja percebendo que listas são muito poderosas. 00:00:04.000 --> 00:00:07.000 E que, usando mutação, tendo listas que contêm outras listas, 00:00:07.000 --> 00:00:10.000 ou qualquer outro tipo de dado que desejarmos, 00:00:10.000 --> 00:00:14.000 podemos contruir estruturas de dados bem complexas, e podemos fazer várias coisas interessantes. 00:00:14.000 --> 00:00:16.000 Eu vou introduzir mais uma operação sobre listas, 00:00:16.000 --> 00:00:20.000 que nos permitirá adicionar um novo elemento no final de uma lista. 00:00:20.000 --> 00:00:24.000 Já vimos que podemos usar listas para armazenar dados complexos, 00:00:24.000 --> 00:00:27.000 que elementos de uma lista podem ser de qualquer tipo que quisermos, inclusive outras listas, 00:00:27.000 --> 00:00:30.000 e vimos que podemos usar mutação para modificar o valor de uma lista, 00:00:30.000 --> 00:00:35.000 e que mutação é visível por meio de qualquer referencia para o mesmo objeto lista. 00:00:35.000 --> 00:00:39.000 Agora, eu vou introduzir mais algumas operações sobre listas. 00:00:39.000 --> 00:00:44.000 A primeira é append: append é similar a um procedimento, mas é um método, 00:00:44.000 --> 00:00:47.000 e por isso nós usamos append de modo semelhante ao que usamos find sobre strings -- 00:00:47.000 --> 00:00:52.000 nós temos primeiro uma lista, seguida de um ponto, seguido de append, 00:00:52.000 --> 00:00:55.000 e o que passamos como argumento é o elemento que queremos adicionar à lista. 00:00:55.000 --> 00:00:59.000 append irá adicionar um novo elemento ao final da lista. 00:00:59.000 --> 00:01:01.000 E o importante sobre append é que ele muda 00:01:01.000 --> 00:01:04.000 a lista sobre a qual ele é invocado. 00:01:04.000 --> 00:01:08.000 Ele não cria uma nova lista; ele muda a lista dada. 00:01:08.000 --> 00:01:12.000 Como um exemplo do uso de append, vamos supor que, ao invés de 00:01:12.000 --> 00:01:16.000 subrtituir "Curly" em stooges, queremos ter agora 4 patetas: 00:01:16.000 --> 00:01:19.000 vamos adicionar "Shemp" e manter os três outros como estão. 00:01:19.000 --> 00:01:24.000 Então, o que queremos fazer é adicionar "Shemp" no final da lista que já temos. 00:01:24.000 --> 00:01:28.000 Isso pode ser feito invocando append sobre stooges, 00:01:28.000 --> 00:01:31.000 passando como entrada a string "Shemp". 00:01:31.000 --> 00:01:35.000 Aqui está o que acontece depois da primeira atribuição: 00:01:35.000 --> 00:01:39.000 o nome stooges referencia uma lista contendo 3 elementos, 00:01:39.000 --> 00:01:41.000 "Moe", "Larry" e "Curly" 00:01:41.000 --> 00:01:46.000 e, quando invocamos append, ele modifica este objeto, 00:01:46.000 --> 00:01:48.000 adicionando um novo elemento a ele. 00:01:48.000 --> 00:01:54.000 Depois do append, a lista referenciada por stooges tem agora 4 elementos. 00:01:54.000 --> 00:01:56.000 Nós não criamos uma nova lista. 00:01:56.000 --> 00:01:59.000 Note que não existe uma atribuição do resultado de append -- 00:01:59.000 --> 00:02:03.000 o que fizemos foi modificar o valor referenciado por stooges, 00:02:03.000 --> 00:02:06.000 adicionando um novo elemento a ele.