Sé un Pythonista: Recibe trucos Python y accede a nuestro espacio de Slack

Solución al Ejercicio #8

Share on facebook
Share on twitter
Share on linkedin

Esta es la solución al Ejercicio #8: Ordena ciudades por población.

Como ocurre con otros ejercicios de este bloque, este ejercicio se puede resolver de múltiples formas. Bueno, en realidad esto es así casi siempre en el mundo de la programación, es decir, un problema puede ser resuelto de maneras diferentes. Algo que yo llamo El arte de resolver problemas.

En fin, a lo que íbamos. La gracia de este ejercicio está en implementar la función ordena_ciudades(ciudades) en una sola línea de código. Esta es una de las soluciones posibles:

def ordena_ciudades(d):
    return sorted((k for k, v in d.items() if v >= 200000), key=lambda x: -d[x])

En primer lugar, la función crea una tupla (a través de comprensión de tuplas) con los nombres de las ciudades de más de 200.000 habitantes.

Finalmente, esa tupla se pasa como argumento de la función sorted(). Para ordenar los elementos, se utiliza una función lambda que se pasa en el argumento key. Esta función, simplemente, cambia el signo al valor de la población del diccionario, para que las ciudades se ordenen de menor a mayor (siendo el resultado precisamente el contrario).

Una alternativa a esta implementación podría ser pasar el argumento reverse=True a la función sorted (lo que implica realizar una modificación en la función lambda):

def ordena_ciudades(d):
    return sorted((k for k, v in d.items() if v >= 200000), key=lambda x: d[x], reverse=True)

Si te ha resultado útil, compártelo con tus amigos 🤗

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Sé un Pythonista: Recibe trucos Python y accede a nuestro espacio de Slack

También te puede interesar

* Te informo de que los datos de carácter personal que proporciones al comentar serán tratados por Juan José Lozano Gómez como responsable de esta web. La Finalidad es moderar los comentarios. La Legitimación es gracias a tu consentimiento. Destinatarios: tus datos se encuentran alojados en Disqus (disqus.com), mi sistema de comentarios, que está acogido al acuerdo de seguridad EU-US Privacy. Podrás ejercer Tus Derechos de Acceso, Rectificación, Limitación o Suprimir tus datos enviando un email a juanjo@j2logo.com. Encontrarás más información en la POLÍTICA DE PRIVACIDAD.

Sobre j2logo

Quiero ayudarte a que seas mejor programador/a, pero no uno cualquiera, sino uno de los top.

Últimos posts

¿Quieres ser un auténtico Pythonista? 🐍

📩 Recibe de vez en cuando trucos, scripts y tutoriales Python en español para dominar el lenguaje. No es SPAM. Date de baja cuando quieras

🥇 Accede a nuestra comunidad privada de Slack: Pythonistas-es

* Al enviar el formulario confirmas que aceptas la POLITICA DE PRIVACIDAD

Pythonistas-es

SÉ UN AUTÉNTICO PYTHONISTA

📩 Recibe trucos, scripts y tutoriales Python

🥇 Accede a nuestra comunidad privada de Slack