[pyar] Resumen de pyar, Vol 114, Envío 30

Emanuel Buzey ebuzey en yahoo.com.ar
Mie Ago 28 14:44:49 -03 2019


 
Buenas tardes!
Espero te sirva mi respuesta:
#!/usr/bin/env python3# -*- coding: utf-8 -*-
def clasificador(numero):    categorias = {        1: 'Categoria Menor',        2: 'Categoria Media Inferior',        3: 'Categoria Media',        4: 'Categoria Media Superior',        5: 'Categoria Mayor'        }    for categoria, desc_cat in categorias.items():        if numero == categoria:            resultado = desc_cat            break    return desc_cat
if __name__ == '__main__':    ejecutar = clasificador(2)    print(ejecutar)
    El miércoles, 28 de agosto de 2019 17:09:18 UTC, pyar-request en python.org.ar <pyar-request en python.org.ar> escribió:  
 
 Envíe los mensajes para la lista pyar a
    pyar en python.org.ar

Para subscribirse o anular su subscripción a través de la WEB
    http://listas.python.org.ar/listinfo/pyar

O por correo electrónico, enviando un mensaje con el texto "help" en
el asunto (subject) o en el cuerpo a:
    pyar-request en python.org.ar

Puede contactar con el responsable de la lista escribiendo a:
    pyar-owner en python.org.ar

Si responde a algún contenido de este mensaje, por favor, edite la
linea del asunto (subject) para que el texto sea mas especifico que:
"Re: Contents of pyar digest...". Además, por favor, incluya en la
respuesta sólo aquellas partes del mensaje a las que está
respondiendo.


Asuntos del día:

  1. Re: Clasificar un valor (Horacio Mayo)
  2. Re: Resumen de pyar, Vol 114, Envío 28 (javiermarcon)


----------------------------------------------------------------------

Message: 1
Date: Wed, 28 Aug 2019 14:08:04 -0300
From: Horacio Mayo <oldoger en gmail.com>
To: pyar en python.org.ar
Subject: Re: [pyar] Clasificar un valor
Message-ID:
    <CAJF8p_7rwQbT9uQGmu3uMD79UDzNC-2qbEC2KJ=hKmnqBVM52Q en mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Coincido. Qué cosas! Interesante bisect.

Gracias por las respuestas a todos!


> From: Juan Carizza <juan.carizza en gmail.com>
> To: Python Argentina <pyar en python.org.ar>
> Subject: Re: [pyar] Clasificar un valor
> Message-ID:
>        <CANMs9gY8bxi=
> 4JsMvzBtfgiLx6T2p0SW5zEyre7XQmHA3QmcDQ en mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> La solución de facu es mas acertada porque *bisect* mantiene la lista
> ordenada (cosa que en mi ejemplo eso tenes que ordenarlo) a parte de ser
> mas elegante y no tener que recorrer todos los items de la lista para
> buscar el minimo.
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20190828/e17c9897/attachment-0001.html>

------------------------------

Message: 2
Date: Wed, 28 Aug 2019 14:08:41 -0300
From: javiermarcon <javiermarcon en gmail.com>
To: Python Argentina <pyar en python.org.ar>
Subject: Re: [pyar] Resumen de pyar, Vol 114, Envío 28
Message-ID: <5d66b51d.1c69fb81.75a39.8da8 en mx.google.com>
Content-Type: text/plain; charset="utf-8"

Yo cambiaria la respuesta de Nicolas para que sea :valor = 6
dicc = {4:'categoria x', 8: 'categoria z'}
for key, value in sorted(dicc.items()):
    if valor < key:
        print (value)        breakSaludos,JavierEnviado desde mi smartphone Samsung Galaxy.
-------- Mensaje original --------De: Nicolas Sandoval <nicolassandovalunm en gmail.com> Fecha: 28/8/19  13:59  (GMT-03:00) Para: pyar en python.org.ar Asunto: Re: [pyar] Resumen de pyar, Vol 114, Envío 28 Por ahí esto te sirve de base después lo adaptas valor = 6
dicc = {4:'categoria x', 8: 'categoria z'}
for key, value in dicc.items():
    if valor < key and valor > key - 4:
        print (value)El mié., 28 de ago. de 2019 13:28,  <pyar-request en python.org.ar> escribió:Envíe los mensajes para la lista pyar a
        pyar en python.org.ar

Para subscribirse o anular su subscripción a través de la WEB
        http://listas.python.org.ar/listinfo/pyar

O por correo electrónico, enviando un mensaje con el texto "help" en
el asunto (subject) o en el cuerpo a:
        pyar-request en python.org.ar

Puede contactar con el responsable de la lista escribiendo a:
        pyar-owner en python.org.ar

Si responde a algún contenido de este mensaje, por favor, edite la
linea del asunto (subject) para que el texto sea mas especifico que:
"Re: Contents of pyar digest...". Además, por favor, incluya en la
respuesta sólo aquellas partes del mensaje a las que está
respondiendo.


Asuntos del día:

   1. Re: Clasificar un valor (Horacio Mayo)
   2. Re: Clasificar un valor (Juan Carizza)
   3. Re: Clasificar un valor (Facundo Batista)
   4. Re: Clasificar un valor (Juan Carizza)
   5. Re: Clasificar un valor (Angel Java Lopez)


----------------------------------------------------------------------

Message: 1
Date: Wed, 28 Aug 2019 13:02:52 -0300
From: Horacio Mayo <oldoger en gmail.com>
To: pyar en python.org.ar
Subject: Re: [pyar] Clasificar un valor
Message-ID:
        <CAJF8p_76vqgQE8qvL4u06_fpb_zru6mG4aA3_=uxKxKa9ujHZw en mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Gracias por las respuestas Tomas, Juan y Gustavo.

Reformularé la pregunta: Hay alguna forma de hacer esto pero con menos
lineas de codigo?

def clasificador(n):
    if n < 4:
        print("Categoria Menor")
    elif n < 8:
        print("Categoria Media Inferior")
    elif n < 10:
        print("Categoria Media")
    elif n < 12:
        print("Categoria Media Superior")
     else:
         print("Categoria Mayor")

Aquí son 5 categorías, pero si tuviera 20 categorías sería un codigo feo
feo.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20190828/a6b07a74/attachment-0001.html>

------------------------------

Message: 2
Date: Wed, 28 Aug 2019 13:09:40 -0300
From: Juan Carizza <juan.carizza en gmail.com>
To: Python Argentina <pyar en python.org.ar>
Subject: Re: [pyar] Clasificar un valor
Message-ID:
        <CANMs9gYrpHL3X0M2LqHxK5V4H=wQY+3kjO-mVfRgsPurekV7hg en mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Asi medio rapidongo: http://linkode.org/#dKPmAE3OiEet7SAE00J3O6

Puede optimizarse..pero quiza seria overkill.

Saludos

El mié., 28 de ago. de 2019 a la(s) 13:03, Horacio Mayo (oldoger en gmail.com)
escribió:

> Gracias por las respuestas Tomas, Juan y Gustavo.
>
> Reformularé la pregunta: Hay alguna forma de hacer esto pero con menos
> lineas de codigo?
>
> def clasificador(n):
>     if n < 4:
>         print("Categoria Menor")
>     elif n < 8:
>         print("Categoria Media Inferior")
>     elif n < 10:
>         print("Categoria Media")
>     elif n < 12:
>         print("Categoria Media Superior")
>      else:
>          print("Categoria Mayor")
>
> Aquí son 5 categorías, pero si tuviera 20 categorías sería un codigo feo
> feo.
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20190828/6d1fdd08/attachment-0001.html>

------------------------------

Message: 3
Date: Wed, 28 Aug 2019 13:10:44 -0300
From: Facundo Batista <facundobatista en gmail.com>
To: Python Argentina <pyar en python.org.ar>
Subject: Re: [pyar] Clasificar un valor
Message-ID:
        <CAM09pzTj35-sbUneSjnG56r0SUkwbj7ayj02h9oCr9dwbrZpCg en mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"

El mié., 28 de ago. de 2019 a la(s) 13:03, Horacio Mayo
(oldoger en gmail.com) escribió:
>
> Gracias por las respuestas Tomas, Juan y Gustavo.
>
> Reformularé la pregunta: Hay alguna forma de hacer esto pero con menos lineas de codigo?
>
> def clasificador(n):
>     if n < 4:
>         print("Categoria Menor")
>     elif n < 8:
>         print("Categoria Media Inferior")
>     elif n < 10:
>         print("Categoria Media")
>     elif n < 12:
>         print("Categoria Media Superior")
>      else:
>          print("Categoria Mayor")
>
> Aquí son 5 categorías, pero si tuviera 20 categorías sería un codigo feo feo.

>>> from bisect import bisect
>>> categorias = [
...:  "menor",
...:  "media inferior",
...:  "media",
...:  "media superior",
...:  "mayor",
...:]
>>> limites = [4, 8, 10, 12]
>>> categorias[bisect(limites, 6)]
'media inferior'
>>> categorias[bisect(limites, 11)]
'media superior'

-- 
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org.ar/
Twitter: @facundobatista


------------------------------

Message: 4
Date: Wed, 28 Aug 2019 13:14:19 -0300
From: Juan Carizza <juan.carizza en gmail.com>
To: Python Argentina <pyar en python.org.ar>
Subject: Re: [pyar] Clasificar un valor
Message-ID:
        <CANMs9gY8bxi=4JsMvzBtfgiLx6T2p0SW5zEyre7XQmHA3QmcDQ en mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

La solución de facu es mas acertada porque *bisect* mantiene la lista
ordenada (cosa que en mi ejemplo eso tenes que ordenarlo) a parte de ser
mas elegante y no tener que recorrer todos los items de la lista para
buscar el minimo.

El mié., 28 de ago. de 2019 a la(s) 13:11, Facundo Batista (
facundobatista en gmail.com) escribió:

> El mié., 28 de ago. de 2019 a la(s) 13:03, Horacio Mayo
> (oldoger en gmail.com) escribió:
> >
> > Gracias por las respuestas Tomas, Juan y Gustavo.
> >
> > Reformularé la pregunta: Hay alguna forma de hacer esto pero con menos
> lineas de codigo?
> >
> > def clasificador(n):
> >     if n < 4:
> >         print("Categoria Menor")
> >     elif n < 8:
> >         print("Categoria Media Inferior")
> >     elif n < 10:
> >         print("Categoria Media")
> >     elif n < 12:
> >         print("Categoria Media Superior")
> >      else:
> >          print("Categoria Mayor")
> >
> > Aquí son 5 categorías, pero si tuviera 20 categorías sería un codigo feo
> feo.
>
> >>> from bisect import bisect
> >>> categorias = [
> ...:  "menor",
> ...:  "media inferior",
> ...:  "media",
> ...:  "media superior",
> ...:  "mayor",
> ...:]
> >>> limites = [4, 8, 10, 12]
> >>> categorias[bisect(limites, 6)]
> 'media inferior'
> >>> categorias[bisect(limites, 11)]
> 'media superior'
>
> --
> .    Facundo
>
> Blog: http://www.taniquetil.com.ar/plog/
> PyAr: http://www.python.org.ar/
> Twitter: @facundobatista
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20190828/a13a87a1/attachment-0001.html>

------------------------------

Message: 5
Date: Wed, 28 Aug 2019 13:27:31 -0300
From: Angel Java Lopez <ajlopez2000 en gmail.com>
To: Python Argentina <pyar en python.org.ar>
Subject: Re: [pyar] Clasificar un valor
Message-ID:
        <CAMs+DqL0-3=wmuFw_3VgzRW_6_RemU_PRUL-SZhaFb2hUQBT+Q en mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Ni idea de como hacerlo en Python, pero, si los numeros a clasificar fueran
entre 0 e infinito, haria:

- Tomar el entero de ese numero m, es decir n = entero(m)
- Con ese entero, entrar en una tabla categorias: categorias[n]

tener precalculado

categorias[0] == 'categoriaA'
categorias[1] == 'categoriaA'
categorias[2] == 'categoriaA'
categorias[3] == 'categoriaA'
categorias[4] == 'categoriaA'
categorias[5] == 'categoriaB'
etc

Si categorias[n] esta vacio, seria 'categoriaUltima'

No se si vale la pena ese trabajo, pero serviria si se quiere hacer una
determinacion de categoria quizas mas rapida, a costa de un calculo inicial

Y si, siempre lo haria con TDD :-)

Nos leemos!

Angel "Java" Lopez
@ajlopez

On Wed, Aug 28, 2019 at 1:14 PM Juan Carizza <juan.carizza en gmail.com> wrote:

> La solución de facu es mas acertada porque *bisect* mantiene la lista
> ordenada (cosa que en mi ejemplo eso tenes que ordenarlo) a parte de ser
> mas elegante y no tener que recorrer todos los items de la lista para
> buscar el minimo.
>
> El mié., 28 de ago. de 2019 a la(s) 13:11, Facundo Batista (
> facundobatista en gmail.com) escribió:
>
>> El mié., 28 de ago. de 2019 a la(s) 13:03, Horacio Mayo
>> (oldoger en gmail.com) escribió:
>> >
>> > Gracias por las respuestas Tomas, Juan y Gustavo.
>> >
>> > Reformularé la pregunta: Hay alguna forma de hacer esto pero con menos
>> lineas de codigo?
>> >
>> > def clasificador(n):
>> >     if n < 4:
>> >         print("Categoria Menor")
>> >     elif n < 8:
>> >         print("Categoria Media Inferior")
>> >     elif n < 10:
>> >         print("Categoria Media")
>> >     elif n < 12:
>> >         print("Categoria Media Superior")
>> >      else:
>> >          print("Categoria Mayor")
>> >
>> > Aquí son 5 categorías, pero si tuviera 20 categorías sería un codigo
>> feo feo.
>>
>> >>> from bisect import bisect
>> >>> categorias = [
>> ...:  "menor",
>> ...:  "media inferior",
>> ...:  "media",
>> ...:  "media superior",
>> ...:  "mayor",
>> ...:]
>> >>> limites = [4, 8, 10, 12]
>> >>> categorias[bisect(limites, 6)]
>> 'media inferior'
>> >>> categorias[bisect(limites, 11)]
>> 'media superior'
>>
>> --
>> .    Facundo
>>
>> Blog: http://www.taniquetil.com.ar/plog/
>> PyAr: http://www.python.org.ar/
>> Twitter: @facundobatista
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20190828/4e181bcb/attachment.html>

------------------------------

Subject: Pié de página del digest

_______________________________________________
pyar mailing list
pyar en python.org.ar
http://listas.python.org.ar/listinfo/pyar

PyAr - Python Argentina - Sitio web: http://www.python.org.ar/


------------------------------

Fin de Resumen de pyar, Vol 114, Envío 28
******************************************

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20190828/a6c1e4ba/attachment.html>

------------------------------

Subject: Pié de página del digest

_______________________________________________
pyar mailing list
pyar en python.org.ar
http://listas.python.org.ar/listinfo/pyar

PyAr - Python Argentina - Sitio web: http://www.python.org.ar/


------------------------------

Fin de Resumen de pyar, Vol 114, Envío 30
******************************************
  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20190828/71ddebe3/attachment-0001.html>


Más información sobre la lista de distribución pyar