Jump to content
joaomfs

Ordenar listas dentro de uma lista

Recommended Posts

joaomfs

Boas a minha duvida é como poderei ordenar lista de tuplos em funçao de um deles. quando estes estão dentro de uma lista.

Exemplo recebe:[[(2,1,B,N),(1,1,C,N)],[(2,2,B,N),(3,2,B,N)],[(2,3,B,N),(2,3,B,N)]]

devolve: [[(1,1,B,N),(2,1,C,N)],[(2,2,B,N),(3,2,B,N)],[(2,3,B,N),(4,3,B,N)]]

quero ordenar relativamente ao primeiro elemento do tuplo do menor para o maior

Obrigado

Share this post


Link to post
Share on other sites
pdfrod

Usa a função sortBy (do módulo Data.List) para ordenar cada sub-lista com base no primeiro elemento do tuplo.

Share this post


Link to post
Share on other sites
angelicous

Como sei que estamos a trabalhar na mesma coisa, posso-te recomendar que consultes o DrawS feito em uma das aulas(não sei se o teu Draw tem esse como base).

O algoritmo que "desenha" a tab que é feita baseada nos limites, quando usada como parametro na função searchtile, faz uma ordenação, mas em ordem contrária ao que queres no eixo dos y.

Isto é, o teu retorno está a ser ordenado com a coordenada y em ordem ascendente(1,2,3) , e o Draw faz ordem descendente(3,2,1). Podes fazer uma pequena alteração da função tab. Em vez de ires do ymax para o min vais do min para o max.

Share this post


Link to post
Share on other sites
joaomfs

no exemplo que fei era de ourta função esta já recebe os y ordenados por ordem decrescente e não crescente

separaLinhas [[(4,3,B,N),(2,3,C,N)],[(2,2,B,N),(3,2,B,N)],[(2,1,B,N),(1,1,B,N)]] =

[[(4,3,B,N),(2,3,C,N)],[(3,2,B,N),(2,2,B,N)],[(1,1,B,N),(2,1,B,N)]]

Share this post


Link to post
Share on other sites
joaomfs

de uma funçao que fiz para ordenar uma lista de tuplos em função do Y (segundo elemento) e depois fiz o reverse disso

Share this post


Link to post
Share on other sites
angelicous

Então o que queres é só ordenar os X agora... que é a mesma coisa.

Fazes um exemplo para apenas uma lista simples ( por exemplo [(4,3,B,N),(2,3,C,N)] ) e depois aplicas a função com um map a esse retorno todo.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.