[pyar] Resumen de pyar, Vol 114, Envío 28
javiermarcon
javiermarcon en gmail.com
Mie Ago 28 14:08:41 -03 2019
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-0001.html>
Más información sobre la lista de distribución pyar