• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

M.offspring.R

[Resolvido] Ordenar dados na lista (de trás para frente)

10 mensagens neste tópico

Boas pessoal,

Neste dias como tenho andado sem nada para fazer, decidi agarrar no Python e ver como era esta linguagem de programaçao, já que todos dizem que é X, Y e Z mas nada como ver com os "próprios olhos" e tirar as suas conclusões...

Então a minha dúvida é a seguinte:

Estava aqui a fazer um simples programa e há medida que o programa vai "andando" vou guardando os resultados numa lista, o meu problema é como ordenar os dados do último para o primeiro...

Imaginando isto como resultado:

lista=[2, 5, 10, 7]

Eu queria colocar a lista da seguinte ordem:

lista=[7. 10, 5, 2]

Já andei às voltas, já pesquisei no nosso amigo Google e não achei a solução para isto (devo ter feiro mal a pesquisa :( )... E como tal, vinha aqui pedir a vossa ajuda.

Cump,

M.offspring.R

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dando uma vista de olhos rápida ao manual (ao tutorial mais especificamente) aqui está uma maneira "porca" de o fazer:

b=[]
for x in a:
   b[:0]=[x]
a=b

Ou então usar funções já definidas para as listas...  :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pelas respostas.

Vou dar uma vista de olhos e já digo o resultado...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é que funcionam os :: Betovsky?

Acho que já percebi, [::n] devolve todos os elementos da lista de n em n, se for negativo começa a contar do fim.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é que funcionam os :: Betovsky?

Acho que já percebi, [::n] devolve todos os elementos da lista de n em n, se for negativo começa a contar do fim.

Exacto...
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que o Betovsky usou chama-se slicing, e funciona para qualquer elemento iterável.

var[inicio do corte:quantos se pode cortar:de quantos em quantos se anda de cada vez]

Quando se omite o inicio do corte, ele assume 0. Quando se omite quantos se pode cortar, ele assume len(lista). Quando se omite de quantos em quantos se anda de cada vez, ele assume 1. Quando o valor de quantos em quantos se anda de cada vez é negativo, a lista é percorrida não a partir do 0, mas sim do len(lista)-1.

Exemplos:

>>> a = [1,2,3,4,5,6,7]
>>> a[0]
1
>>> a[0:7]
[1, 2, 3, 4, 5, 6, 7]
>>> a[0:6]
[1, 2, 3, 4, 5, 6]
>>> a[0:]
[1, 2, 3, 4, 5, 6, 7]
>>> a[0:6:]
[1, 2, 3, 4, 5, 6]
>>> a[0:6:3]
[1, 4]
>>> a[0:6:2]
[1, 3, 5]
>>> a[0:6:1]
[1, 2, 3, 4, 5, 6]
>>> a[:6:1]
[1, 2, 3, 4, 5, 6]
>>> a[:-1:1]
[1, 2, 3, 4, 5, 6]
>>> a[::-1]
[7, 6, 5, 4, 3, 2, 1]

EDIT (JoaoRodrigues):

http://www.portugal-a-programar.pt/forums/topic/0-find-topic/?do=findComment&comment=131451

http://wiki.portugal-a-programar.pt/dev_geral:python:slicing

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora