0

Qual a diferença entre append, insert, e extend em python?

#Python
Emerson Ehing
Emerson Ehing

Este artigo tem por finalidade esclarecer de uma forma simples os diferentes usos de métodos que apesar de parecerem sinônimos, geram na verdade resultados bem diferentes. Claro, com um exemplo prático que ressalte as diferentes usabilidades de cada um. Não se preocupe, não tenho por objetivo me aprofundar na teoria, embora não me abstenha de algumas ressalvas fundamentais para que tudo seja assimilado. Pois bem, que os jogos comecem, que a brincadeira se inicie, que os jogadores sejam adicionados e as fichas inseridas...


   Primeiramente iniciaremos com append. Que bicho é esse? Onde ele mora? Do que se alimenta? Seu habitat natural... ok, antes de mais nada saiba que append(), insert() e extend() são métodos, e como tais, servem para alterar algo que já tenha sido previamente definido. Seja numa lista ou num array, podemos modifica-los usando métodos. O que? Você não sabe o que é um array? Não sabe o que os diferencia de uma lista? Tudo bem, em Python, arrays e lists parecem se tratar da mesma coisa, mas o que realmente os diferencia é o fato de arrays só acomodarem valores (values) que sejam do mesmo tipo. E é isso, porcos são porcos, pérolas são pérolas e não devemos deixá-los juntos. Já numa lista podemos fazer uma salada, sem problema algum, sejam com strings, sejam com números ou sejam emojis engraçadinhos.


  Para declarar um array precisamos conhecer alguns elementos que estruturarão a sua sintaxe para que o mesmo seja declarado em nosso código: identifiers, typecodes e initialyzers. Um identifier nada mais é do que o nome com o qual será identificado. Um typecode é o código que será usado para identificar o tipo de array ou o valor do array ou ambos. Não, não pode ser qualquer coisa. Há tabelas parametrizadas para isso com os respectivos simbolos e valorez.  


Parametros e Detalhes

b Represents signed integer of size 1 byte

B Represents unsigned integer of size 1 byte

c Represents character of size 1 byte

u Represents unicode character of size 2 bytes

h Represents signed integer of size 2 bytes

H Represents unsigned integer of size 2 bytes

i Represents signed integer of size 2 bytes

I Represents unsigned integer of size 2 bytes

w Represents unicode character of size 4 bytes

l Represents signed integer of size 4 bytes

L Represents unsigned integer of size 4 bytes

f Represents floating point of size 4 bytes

d Represents floating point of size 8 bytes 


E um initializer, por sua vez, é o valor com o qual será inicializado. Vejamos:


marquinho_array = array('i', [1,2,3,4,])

Aqui temos o seguinte esquema:


Identifier = array('typecode', [initializer])

   Bem simples, e também sumariamente importante para que possamos realizar diversas alterações. Começaremos com Append dando continuidade ao exemplo acima e primeiramente importaremos o módulo array da biblioteca padrão. Em python um array não é visto como um interger, um float ou uma string ou algum outro datatype padrão.


from array import *

marquinho_array = array('i', [10,20,30,40])

for i in marquinho_array:

   print(i)


Isso nos trará um output padrão.

... 10

... 20

... 30

... 40


  Mas digamos que queiramos adicionar o número 50 no final de nosso array, fazemos o seguinte:


marquinho_array.append(50)


  Incluiremos esta linha de código logo abaixo da linha onde definimos nosso array, e vualá:

... 10

... 20

... 30

... 40

... 50


  Nosso output retornou com o valor adicionado. E basicamente é isto que o método append( ) faz. Ele acrescenta um novo valor atribuído no final de nosso array. Mas digamos que agora o lance é por um novo valor no início, o que faremos? Neste caso usaremos outro método com o qual poderemos definir qual o valor e em qual posição que nosso novo valor será acrescentado. A posição de um valor chama-se index, e usaremos o método insert para definir tanto o valor como o index.


marquinho_array.insert(0,0)


  O primeiro argumento é o index o segundo é o valor. Sendo assim teremos o output:

... 0

... 10

... 20

... 30

... 40

... 50


  Legal, né? Digamos que queiramos logo após o número 10 colocar o valor 15, qual o procedimento? Basta lembrar que o primeiro argumento será o index, ou seja, a posição na qual queremos colocar o valor de nosso argumento.


marquinho_array.insert(2, 15)


Assim nosso output estará de acordo com nossos novos valores:

... 0

... 10

... 15

... 20

... 30

... 40

... 50


  Há, Marco véio... Agora vejamos outra possibilidade. Digamos que haja dois arrays e queremos que haja apenas um. O procedimento é usarmos o método extend( ) para assim fazermos nossa mágica. Marquinho acelerou e atingiu novas velocidades: [60, 65, 70, 80].


import array

marquinho_array = array('i', [0, 10, 15, 20, 30, 40, 50])

marquinho_veloz_array = array('i', [60, 65, 70, 80])

marquinho_array.extend(marquinho_veloz_array)

print(marquinho_array)


Output:

array('i', [0, 10, 15, 20, 30, 40, 50, 60, 65, 70, 80])


  E para finalizarmos, já que você já está de saco cheio do marquinho, usaremos os métodos fromlist( ) e o tolist( ). Com estes as coisas são um pouco diferentes. As possibilidades são outras. Digamos que além de nosso array de velocidades do marquinho, nós tenhamos uma lista com as velocidades que ele ainda vai ou pretende alcançar: [90, 95, 100] e desejamos incluir estes valores ao nosso array. Levantou aquela pestana mostrando a maior curiosidade do mundo? Muito bem, vamos lá...


marquinho_array = array('i', [0, 10, 15, 20, 30, 40, 50, 60, 65, 70, 80])

lista = [90,95,100]

marquinho_array.fromlist(lista)

print(marquinho_array)


Output:

array('i', [0, 10, 15, 20, 30, 40, 50, 60, 65, 70, 80, 90, 95, 100])


  Agora queremos fazer o inverso, queremos transformar este array numa lista, e para isto usaremos o método tolist( ).

marquinho_array = array('i', [0, 10, 15, 20, 30, 40, 50, 60, 65, 70, 80, 90,95,100])

lista = marquinho_array.tolist( )

print(lista)


Output:

[0, 10, 15, 20, 30, 40, 50, 60, 65, 70, 80, 90, 95, 100]


  É importante sempre estar atualizado com as novas mudanças das novas versões do python quando você estiver as usando. Por exemplo, no python 3.9, os métodos tostring( ) e fromstring( ) foram removidos, então se você tentar executar um código antigo no novo, dará erro. Mantenha-se atualizado, evitando assim muitas dores de cabeça, principalmente quando estiver atualizando um sistema legado. Aqui tratamos dos métodos que adicionam, não esqueçam que também há os métodos que removem, como o pop( ) e o remove( ), métodos de contagem como o count( ) e fetching pelo índice (o processo do computador de recuperar uma linha da memória antes de descobrir o que quer e depois o que fazer) usando o método index( ), podemos ordenar tanto numericamente ou por ordem alfabética usando o sort( ) e também podemos reverter uma lista ou um array usando reverse( ). Não esqueça também que métodos como union( ), add( ), discard( ), update( ), além de vários outros são usados em sets. Vale muito apena se aprofundar nos fundamentos pois somente com uma fundação sólida você poderá subir à novos níveis.


  Se você achou algum erro ou tem alguma sugestão a acrescentar, por favor deixe seu comentário.

0
125

Comentários (0)

None