UnKnowN Posted June 18, 2006 at 01:02 PM Report Share #33564 Posted June 18, 2006 at 01:02 PM Qual a diferença entre: >>> x = [1,2,3] >>> x.pop(0) 1 >>> x [2, 3] >>> x = [1,2,3] >>> del x[0] >>> x [2, 3] Obrigado 😄 Link to comment Share on other sites More sharing options...
Triton Posted June 18, 2006 at 01:25 PM Report Share #33569 Posted June 18, 2006 at 01:25 PM O pop() remove um elemento da lista (nem sempre o último) e retorna o seu valor. O del é usado para remover qualquer elemento de uma lista (ou de um dicionário) ou mesmo apagar uma variável. Este não retorna o valor e tens de especificar o item que queres remover. <3 life Link to comment Share on other sites More sharing options...
PaLobo Posted June 18, 2006 at 01:34 PM Report Share #33573 Posted June 18, 2006 at 01:34 PM Essa também já sabia... 😄 Tenho estado ocupado a ler o livro que me arranjaste UnKnowN 😛 http://s4.bitefight.com.pt/c.php?uid=20666 Link to comment Share on other sites More sharing options...
Triton Posted June 18, 2006 at 01:39 PM Report Share #33574 Posted June 18, 2006 at 01:39 PM Parece que andamos todos a ler o mesmo livro 😄😛 Eu parei no capítulo 5 para fazer umas coisas giras 😁 mais ou menos à 2 semanas. <3 life Link to comment Share on other sites More sharing options...
PaLobo Posted June 18, 2006 at 01:56 PM Report Share #33577 Posted June 18, 2006 at 01:56 PM Eu ainda só vou no capítulo 3 mas está a ser interessante. 😄 http://s4.bitefight.com.pt/c.php?uid=20666 Link to comment Share on other sites More sharing options...
maiden Posted June 18, 2006 at 02:37 PM Report Share #33580 Posted June 18, 2006 at 02:37 PM Já agora, se não for indiscrição podiam dizer qual é o livro. ? Eu ando a ler o Python Bible, estou a gostar mais do que os da série "In a Nutshell" da O'Reilly. Ah, e ando a dar uns toques em wxPython, através do site wxPyWiki, nomeadamente deste tutorial. Cumps, Link to comment Share on other sites More sharing options...
PaLobo Posted June 18, 2006 at 02:47 PM Report Share #33583 Posted June 18, 2006 at 02:47 PM Sobre python estou a ler este que por sinal parece ser muito bom. Sobre wxPython estou a ler este. Se precisares, manda PM. P. http://s4.bitefight.com.pt/c.php?uid=20666 Link to comment Share on other sites More sharing options...
UnKnowN Posted June 18, 2006 at 06:40 PM Author Report Share #33611 Posted June 18, 2006 at 06:40 PM O pop() remove um elemento da lista (nem sempre o último) e retorna o seu valor. O del é usado para remover qualquer elemento de uma lista (ou de um dicionário) ou mesmo apagar uma variável. Este não retorna o valor e tens de especificar o item que queres remover. Mas então para que é que existe o pop() se o del faz o que este faz e ainda faz mais ? (esta era a minha pergunta inicial mas exprimi-me mal... ? ) Link to comment Share on other sites More sharing options...
PaLobo Posted June 18, 2006 at 07:00 PM Report Share #33618 Posted June 18, 2006 at 07:00 PM O triton pode-me corrigir se estiver engando, mas a princpal vantagem do pop(), é o de retornar um valor, logo: >>> a=[1,2,3] >>> a [1, 2, 3] >>> b=a.pop(0) >>> b 1 >>> a [2, 3] >>> c= del a[0] SyntaxError: invalid syntax >>> Quanto ao syntax error, não sei se é devido ao uma má configuração do meu sistema se devido ao facto de del não retornar valor. Mas se for o caso da última, não deveria dar à mesma ficando c = None??? Cumps, P. http://s4.bitefight.com.pt/c.php?uid=20666 Link to comment Share on other sites More sharing options...
Triton Posted June 18, 2006 at 07:18 PM Report Share #33623 Posted June 18, 2006 at 07:18 PM Volta a ler no livro a parte sobre o pop(), vem lá a explicar outra razão... push() [que no python é o .append()]. Com estes dois podem-se criar stacks. The generally accepted names for the two stack operations (putting things in and taking them out) are push and pop. Python doesn’t have push, but you can use append instead. The popand append methods reverse each other’s results, so if you push (or append) the value you just popped, you end up with the same stack. Using pop, you can implement a common data structure called a stack. A stack like this works just like a stack of plates. You can put plates on top, and you can remove plates from the top. The last one you put into the stack is the first one to be removed. (This principle is called Last-In, First-Out, or LIFO.) >>> x = [1, 2, 3] >>> x.append(x.pop()) >>> x [1, 2, 3] <3 life Link to comment Share on other sites More sharing options...
UnKnowN Posted June 18, 2006 at 08:07 PM Author Report Share #33636 Posted June 18, 2006 at 08:07 PM E o que é que os stacks têm de bom ? E qual a vantagem do .pop() retornar um valor ? no programa isso nao será visto ... Link to comment Share on other sites More sharing options...
PaLobo Posted June 18, 2006 at 08:55 PM Report Share #33647 Posted June 18, 2006 at 08:55 PM a = [1,2,3,4,5,6] i=0 x=0 while x!=4: x=a.pop(i) print x >>> 1 2 3 4 >>> Isto com del a[] não é possível. Esta é apenas uma vantagem de pop(). Deve haver muitas outras e bem mais complexas, mas para já são certament situação que me ultrapassam. 😉 http://s4.bitefight.com.pt/c.php?uid=20666 Link to comment Share on other sites More sharing options...
UnKnowN Posted June 19, 2006 at 12:52 PM Author Report Share #33767 Posted June 19, 2006 at 12:52 PM Hmm ok percebi, mas já agr, e entrando 1 bocadito em Off-Topic, podes explicar.me o code que aí puseste ? o que ele faz PASSO-a-PASSO ? Explicando o porquê do resultado final, pk sendo i=0 entao o resultado deveria ser [2,3,4,5,6] pois eliminaria a posição 0 ou seja o nº 1 da lista não ? :S Obrigado PaLobo 😛 Link to comment Share on other sites More sharing options...
PaLobo Posted June 19, 2006 at 02:39 PM Report Share #33769 Posted June 19, 2006 at 02:39 PM a = [1,2,3,4,5,6] #Passo1 i=0 #Passo 2 x=0 #Passo 3 while x!=4: #Passo 4 x=a.pop(i) #Passo 5 print x #Passo 6 - Passo 1 é simples, é a criação da lista. - Passo 2 e 3 iniciaçliza duas variáveis. Só depois é que percebi que não precisava da variavel i uma vez que não há iteração, fazemos pop() sempre do zero. (coisa de novato... 😉) - Passo 4 inicio um ciclo / loop que só irá parar quando x=4. - Passo 5, atribuo a x o valor retornado por pop(i) - Passo 6 faço print do valor de x para se ver o resultado do pop(). A lista final será [5, 6]. http://s4.bitefight.com.pt/c.php?uid=20666 Link to comment Share on other sites More sharing options...
UnKnowN Posted June 19, 2006 at 04:18 PM Author Report Share #33775 Posted June 19, 2006 at 04:18 PM Nao percebo que realção é que o 'x' tem com 'a' e que relação existe com 'i' e com o resto... tipo pkek fika [5,6] ? como é que o x se torna igual a 4 se o x é 0 ? And lots os Questions that i cannot explain :| Link to comment Share on other sites More sharing options...
PaLobo Posted June 19, 2006 at 05:28 PM Report Share #33779 Posted June 19, 2006 at 05:28 PM talvez seja mais fácil assim: Código: a=[1,2,3,4,5,6] x=0 while x != 4: x = a.pop(0) print x print a Output: pedro@Lobo:~$ python simples.py 1 [2, 3, 4, 5, 6] 2 [3, 4, 5, 6] 3 [4, 5, 6] 4 [5, 6] pedro@Lobo:~$ Como disse há pouco, o i estava a mais e podiamos fazer o mesmo sem ele. Inicialmente, o x tem o valor de 0, mas como pop() retorna um valor e temos x = a.pop(0), x irá ficar com o valor devolvido pelo pop(). Uma vez que x não é igual a 4, o ciclo repete-se. Desta vez a lista já só é [2,3,4,5,6] logo a.pop(0) irá devolver o valor 2 que ficará associado a x. O ciclo continua assim até x=4 e depois pára. A lista resultante é então [5,6]. http://s4.bitefight.com.pt/c.php?uid=20666 Link to comment Share on other sites More sharing options...
UnKnowN Posted June 20, 2006 at 07:50 PM Author Report Share #33979 Posted June 20, 2006 at 07:50 PM OK Obrigado PaLobo 😛 Link to comment Share on other sites More sharing options...
PaLobo Posted June 20, 2006 at 09:09 PM Report Share #33996 Posted June 20, 2006 at 09:09 PM Sempre às ordems... 😛 http://s4.bitefight.com.pt/c.php?uid=20666 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now