Autor Tema: Operador "in" de Python  (Leído 7086 veces)

josebita

  • Administrator
  • *****
  • Mensajes: 4039
  • Karma: 257
    • BennuGD Mobile Worklog
Operador "in" de Python
« en: Julio 13, 2012, 11:10:28 am »
Últimamente estoy haciendo algunas cosillas en python y una cosa que encuentro que es muy útil es el operador in.
La forma en que funciona es que busca elementos dentro de elementos más grandes. Por ejemplo:
Código: [Seleccionar]
"Hello" in "Hello, World!"   ----->  TRUE
"Hi" in "Hello, World!"        ------> FALSE
pero también
Código: [Seleccionar]
3 in [1, 2, 3, 4]    -----> TRUE
5 in [1, 2, 3, 4]    -----> FALSE

Evidentemente esto se puede hacer con unas funcioncillas simples en bennu, pero la verdad dado que es algo relativamente común de hacer, tener el operador directamente ahorra un montón de código y aporta claridad.

¿Sería posible hacer algo así en Bennu?

KeoH

  • Hero Member
  • *****
  • Mensajes: 1170
  • Karma: 17
Re:Operador "in" de Python
« Respuesta #1 en: Julio 13, 2012, 11:18:31 am »
Eso lo comenté hace tiempo xD http://forum.bennugd.org/index.php?topic=2732.0

KeoH

  • Hero Member
  • *****
  • Mensajes: 1170
  • Karma: 17
Re:Operador "in" de Python
« Respuesta #2 en: Julio 13, 2012, 11:22:16 am »
Anoche precisamente estaba pensando en este operador para Bennu .. porque tenia una tabla de 400 elementos .. donde queria sacar en otra tabla los elementos sin repetir xD y este operador me habria servido xDD todavia no se como plantearlo xDD hasta las 4 de la mañana me pegué pa no sacarlo xDD

josebita

  • Administrator
  • *****
  • Mensajes: 4039
  • Karma: 257
    • BennuGD Mobile Worklog
Re:Operador "in" de Python
« Respuesta #3 en: Julio 13, 2012, 01:26:14 pm »
¡Ay, perdona! ahora recuerdo haberlo visto. ¡Apoyo tu petición :) !
Además de para lo que comentabas, el operador vale para cosas como leer contenidos de ficheros y cargarlos a memoria sin duplicados:

Código: [Seleccionar]
value = fgets(fd);
if !(value in list)
    list[n++] = value;
end
O, por ejemplo, para guardar una lista de niveles a los que el usuario puede jugar porque ha desbloqueado los logros adecuados:
Código: [Seleccionar]
for(i=1; i<=MAX_LEVELS; i++)
    if(i in unlocked_levels)
        display_unlocked(i);   <--- Muestra el nivel en el selector de niveles de forma que el usuario lo pueda seleccionar.
    else
         display_locked(i);      <---- Lo muestra de forma que el usuario no lo pueda seleccionar.
    end
end
Y cosas así.

Como digo, no aporta nada que ahora mismo no se pueda hacer, pero sí que simplifica la vida al programador.

KeoH

  • Hero Member
  • *****
  • Mensajes: 1170
  • Karma: 17
Re:Operador "in" de Python
« Respuesta #4 en: Julio 13, 2012, 03:58:47 pm »
Te comprendo perfectamente xDDD

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12884
  • Karma: 377
Re:Operador "in" de Python
« Respuesta #5 en: Julio 13, 2012, 07:37:40 pm »
Últimamente estoy haciendo algunas cosillas en python y una cosa que encuentro que es muy útil es el operador in.
La forma en que funciona es que busca elementos dentro de elementos más grandes. Por ejemplo:
Código: [Seleccionar]
"Hello" in "Hello, World!"   ----->  TRUE
"Hi" in "Hello, World!"        ------> FALSE
pero también
Código: [Seleccionar]
3 in [1, 2, 3, 4]    -----> TRUE
5 in [1, 2, 3, 4]    -----> FALSE

Evidentemente esto se puede hacer con unas funcioncillas simples en bennu, pero la verdad dado que es algo relativamente común de hacer, tener el operador directamente ahorra un montón de código y aporta claridad.

¿Sería posible hacer algo así en Bennu?


podes usar las funciones de busqueda (cadenas y numeros, segun el caso)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

  • Administrator
  • *****
  • Mensajes: 4039
  • Karma: 257
    • BennuGD Mobile Worklog
Re:Operador "in" de Python
« Respuesta #6 en: Julio 13, 2012, 07:45:08 pm »
podes usar las funciones de busqueda (cadenas y numeros, segun el caso)
Sí, claro. Pero el operador puede ahorrar código y como concepto creo que es más simple.

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12884
  • Karma: 377
Re:Operador "in" de Python
« Respuesta #7 en: Julio 13, 2012, 07:46:24 pm »
no lo dudo, prefiero concentrar esfuerzos en tener opengl o incluso otros ports...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

  • Administrator
  • *****
  • Mensajes: 4039
  • Karma: 257
    • BennuGD Mobile Worklog
Re:Operador "in" de Python
« Respuesta #8 en: Julio 13, 2012, 07:50:32 pm »
no lo dudo, prefiero concentrar esfuerzos en tener opengl o incluso otros ports...
Parece razonable :)

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12884
  • Karma: 377
Re:Operador "in" de Python
« Respuesta #9 en: Julio 13, 2012, 09:06:03 pm »
eso espero... :)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2