[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:04.00,Default,,0000,0000,0000,,Eu espero que você esteja percebendo que listas são muito poderosas. Dialogue: 0,0:00:04.00,0:00:07.00,Default,,0000,0000,0000,,E que, usando mutação, tendo listas que contêm outras listas, Dialogue: 0,0:00:07.00,0:00:10.00,Default,,0000,0000,0000,,ou qualquer outro tipo de dado que desejarmos, Dialogue: 0,0:00:10.00,0:00:14.00,Default,,0000,0000,0000,,podemos contruir estruturas de dados bem complexas, e podemos fazer várias coisas interessantes. Dialogue: 0,0:00:14.00,0:00:16.00,Default,,0000,0000,0000,,Eu vou introduzir mais uma operação sobre listas, Dialogue: 0,0:00:16.00,0:00:20.00,Default,,0000,0000,0000,,que nos permitirá adicionar um novo elemento no final de uma lista. Dialogue: 0,0:00:20.00,0:00:24.00,Default,,0000,0000,0000,,Já vimos que podemos usar listas para armazenar dados complexos, Dialogue: 0,0:00:24.00,0:00:27.00,Default,,0000,0000,0000,,que elementos de uma lista podem ser de qualquer tipo que quisermos, inclusive outras listas, Dialogue: 0,0:00:27.00,0:00:30.00,Default,,0000,0000,0000,,e vimos que podemos usar mutação para modificar o valor de uma lista, Dialogue: 0,0:00:30.00,0:00:35.00,Default,,0000,0000,0000,,e que mutação é visível por meio de qualquer referencia para o mesmo objeto lista. Dialogue: 0,0:00:35.00,0:00:39.00,Default,,0000,0000,0000,,Agora, eu vou introduzir mais algumas operações sobre listas. Dialogue: 0,0:00:39.00,0:00:44.00,Default,,0000,0000,0000,,A primeira é append: append é similar a um procedimento, mas é um método, Dialogue: 0,0:00:44.00,0:00:47.00,Default,,0000,0000,0000,,e por isso nós usamos append de modo semelhante ao que usamos find sobre strings -- Dialogue: 0,0:00:47.00,0:00:52.00,Default,,0000,0000,0000,,nós temos primeiro uma lista, seguida de um ponto, seguido de append, Dialogue: 0,0:00:52.00,0:00:55.00,Default,,0000,0000,0000,,e o que passamos como argumento é o elemento que queremos adicionar à lista. Dialogue: 0,0:00:55.00,0:00:59.00,Default,,0000,0000,0000,,append irá adicionar um novo elemento ao final da lista. Dialogue: 0,0:00:59.00,0:01:01.00,Default,,0000,0000,0000,,E o importante sobre append é que ele muda Dialogue: 0,0:01:01.00,0:01:04.00,Default,,0000,0000,0000,,a lista sobre a qual ele é invocado. Dialogue: 0,0:01:04.00,0:01:08.00,Default,,0000,0000,0000,,Ele não cria uma nova lista; ele muda a lista dada. Dialogue: 0,0:01:08.00,0:01:12.00,Default,,0000,0000,0000,,Como um exemplo do uso de append, vamos supor que, ao invés de Dialogue: 0,0:01:12.00,0:01:16.00,Default,,0000,0000,0000,,subrtituir "Curly" em stooges, queremos ter agora 4 patetas: Dialogue: 0,0:01:16.00,0:01:19.00,Default,,0000,0000,0000,,vamos adicionar "Shemp" e manter os três outros como estão. Dialogue: 0,0:01:19.00,0:01:24.00,Default,,0000,0000,0000,,Então, o que queremos fazer é adicionar "Shemp" no final da lista que já temos. Dialogue: 0,0:01:24.00,0:01:28.00,Default,,0000,0000,0000,,Isso pode ser feito invocando append sobre stooges, Dialogue: 0,0:01:28.00,0:01:31.00,Default,,0000,0000,0000,,passando como entrada a string "Shemp". Dialogue: 0,0:01:31.00,0:01:35.00,Default,,0000,0000,0000,,Aqui está o que acontece depois da primeira atribuição: Dialogue: 0,0:01:35.00,0:01:39.00,Default,,0000,0000,0000,,o nome stooges referencia uma lista contendo 3 elementos, Dialogue: 0,0:01:39.00,0:01:41.00,Default,,0000,0000,0000,,"Moe", "Larry" e "Curly" Dialogue: 0,0:01:41.00,0:01:46.00,Default,,0000,0000,0000,,e, quando invocamos append, ele modifica este objeto, Dialogue: 0,0:01:46.00,0:01:48.00,Default,,0000,0000,0000,,adicionando um novo elemento a ele. Dialogue: 0,0:01:48.00,0:01:54.00,Default,,0000,0000,0000,,Depois do append, a lista referenciada por stooges tem agora 4 elementos. Dialogue: 0,0:01:54.00,0:01:56.00,Default,,0000,0000,0000,,Nós não criamos uma nova lista. Dialogue: 0,0:01:56.00,0:01:59.00,Default,,0000,0000,0000,,Note que não existe uma atribuição do resultado de append -- Dialogue: 0,0:01:59.00,0:02:03.00,Default,,0000,0000,0000,,o que fizemos foi modificar o valor referenciado por stooges, Dialogue: 0,0:02:03.00,0:02:06.00,Default,,0000,0000,0000,,adicionando um novo elemento a ele.