Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Python

Iniciado por Dokko, 14 de Junio de 2007, 10:27:31 PM

« anterior - próximo »

ZüNdFoLGe

<mi primer y ultimo comentario en este hilo>

Cita de: "Mars Attacks"En cualquier caso, antes que Java yo usaría Python.

:shock: Son cosas distintas... si comparas Java vs Python, es evidente que no has trabajado con java...porque no tienen "nada" que ver. No voy a hacer un debate sobre "cuál es mejor lenguaje", basta con buscar, si bien yo no busque nada sobre "java vs python" apostaria mi cabeza en una guillotina a que los que dicen "python antes que java" es porque no han usado java, o bien, los conocimientos de java son nulos/escazos. Basta con ver como ethernet eliminaba elementos en una lista usando java  :lol: en su blog, en el post con titulo "Java, oh no!"...y es claro, que de esa forma cualquiera usaria python antes que Java jejeje...(sin animos de ofender, y en tono desenfadado  :D )

Cita de: "ZaelSiuS"Yo lo veo como un complemento a los lenguajes "de producción" como C++ o Java, no un sustituto. De momento.

exacto...concuerdo al 100%

saludos

ethernet

Cita de: "ZüNdFoLGe"<mi primer y ultimo comentario en este hilo>

Cita de: "Mars Attacks"En cualquier caso, antes que Java yo usaría Python.

:shock: Son cosas distintas... si comparas Java vs Python, es evidente que no has trabajado con java...porque no tienen "nada" que ver. No voy a hacer un debate sobre "cuál es mejor lenguaje", basta con buscar, si bien yo no busque nada sobre "java vs python" apostaria mi cabeza en una guillotina a que los que dicen "python antes que java" es porque no han usado java, o bien, los conocimientos de java son nulos/escazos. Basta con ver como ethernet eliminaba elementos en una lista usando java  :lol: en su blog, en el post con titulo "Java, oh no!"...y es claro, que de esa forma cualquiera usaria python antes que Java jejeje...(sin animos de ofender, y en tono desenfadado  :D )

Cita de: "ZaelSiuS"Yo lo veo como un complemento a los lenguajes "de producción" como C++ o Java, no un sustituto. De momento.

exacto...concuerdo al 100%

saludos

querido amigo, aún no me has contestado a lo que te pregunté en mi comentario. Para más info:http://blep.blogspot.com/2008/02/java-oh-no.html

Pero vamos, lo pongo aquí para que quede claro que java es una gran bazofia, te propongo a que hagas eso en java. Y no estoy rebuscando, es un algoritmo que perfectamente puedes aplicar en tu vida como programador:


[x for x in li if x.method() in [1,"2",3]]


Sun empieza a darse cuenta de la mierda que ha creado y todo lo que java tendría que haber sido es lo que pretenden con java7, jython y jruby (ya han contratado a los creadores de ambas).

En fin, después de un año programando en java (j2me, j2se y un poco j2ee) me doy cuenta de que poco se puede salvar.

ZüNdFoLGe

Cita de: "ZüNdFoLGe"<mi primer y ultimo comentario en este hilo>

jeje, la ignorancia de ethernet me ha hecho romper esa regla  :lol:

Cita de: "ethernet"
querido amigo, aún no me has contestado a lo que te pregunté en mi comentario. Para más info:http://blep.blogspot.com/2008/02/java-oh-no.html


[x for x in li if x.method() in [1,"2",3]]


dios DIOXXX!!!! que gran complicacion!!! Java OH NOOO!!!!


li.removeAll(elems.contains(x.method) ? null : x);


donde elem es una collection, en particular, la collection con el conjunto que tu pusiste que bien puede ser un simple ArrayList.

por cierto, a diferencia de lo que has puesto, esto era lo que estaba en tu blog:


[t for x in li if x.method() in [1,"2",3]]


que necio eres... me extraña que teniendo un año de programador java pongas esa estupidez como diciendo "a ver si logras esto con java", y mas me extraña que teniendo 1 año de experiencia en java escribas este disparate de codigo para filtrar una lista:

void filter(List src) {
List li = new ArrayList();
for (Type t: src) {
if( t != null)
li.add(t);
}
}


joder...eso es tipico de "mis primeros dias con java" jaja

Cita de: "ethernet"
Sun empieza a darse cuenta de la mierda que ha creado y todo lo que java tendría que haber sido es lo que pretenden con java7, jython y jruby (ya han contratado a los creadores de ambas).

En fin, después de un año programando en java (j2me, j2se y un poco j2ee) me doy cuenta de que poco se puede salvar.

de lo unico que me doy cuenta es que estas cegado con pyhton (que es un leguaje COMPLEMENTO hoy en dia) y que si estuviste 1 año programando en java mejor ni saber que hiciste, ya que es evidente que ni siquiera usaste la clase List...

Extraido de tu blog:
Cita de: "ethernet"
Java no me gusta y no me gusta por muchas cosas que ya he comentado, odio ese quiero pero no puedo

Java no te gusta y punto. El "quiero pero no puedo" es problema tuyo, no del lenguaje.

Cita de: "ethernet"
El caso es que llevo unos días trabajando con python para diferentes tareas de administración y automatización y te me doy cuenta que soy mucho más productivo y puedo dedicar el tiempo a otras cosas que no sean poner try catch, casts e interminables líneas para crear una simple lista.

que problema hay con el try/catch?? si ni siquiera tienes que escribirlo tu (a diferencia de C++)

interminables lineas para crear una simple lista???
Joder...

List lista;  

se termino el mundo!!!

Viendo tu arrogancia y lo necio que eres lo unico interminable es ponerme a discutir sobre pyhton vs Java contigo, cosa que no pienso hacer.

ethernet

Viendo que solo haces que insultarme es mejor que lo dejemos. Yo no te he insultado y aunque java sea mucho mejor que python y yo esté equivocado por completo y esté cegado, no es razón para insultarme, no crees?

Hubiera estado bien una comparación en el manejo de listas entre los dos lenguajes, no se trataba de discutir si mi postura es la buena o no, es obvio que no me gusta java y es una opinión completamente subjetiva e irracional. El que realmente piense que existe un lenguaje mejor que otro es que realmente no tiene ni idea de programar.

No te calientes, suficientes razones hay para hacerlo, un saludo

esfumato

16 de Junio de 2007.

Cita de: "Xine"Python or die  :twisted:

2 de Abril de 2008

Cita de: "esfumato"Alguien sabe como aprender a programar algo muy básico con python he mirado manuales gratuitos en internet, pero son algo complicados para alguien que no sabe programar y suelen ser siempre basados en cálculos matemáticos, del tipo hacer una calculadora o cosas así.

Yo lo que quiero, es hacer una modificación, del BLADE, un minijuego, así que si alguien sabe que necesitaría saber, para toquetear los parámetros o librerías que el juego usa, se lo agradecería.

Un saludo!

Refloté el post para pedir algo de información y me encuentro con ustedes a punto de Llegar a las manos.

No tiene ningún sentido y además lean el último comentario antes de ponerse a responder en el Hilo!!!

Zaelsius

li.removeAll(elems.contains(x.method) ? null : x);

"Hoygan", justo ahora necesito filtrar unan lista en Java, pero no entiendo bien tu código.

Yo tengo lo siguiente:



boolean objetoCumpleCondicion( Objeto objeto )
{
 ....
  return ( true / false )
}

ArrayList<objeto> objetos = funcion_magica();

// filtrar lista


Necesito eliminar de la lista "objetos" aquellos miembros que no  pasan el teste de la función objetoCumpleCondicion. ¿Cómo exáctamente hago eso en una línea de código? No me queda claro qué significa "x" en tu código..

"Grasias de hantebraso" ;)

PD: NO es una coña, realmente no sé como hacerlo sin apoyarme en un bucle y una lista auxiliar. Soy un pobre programador de C++ fuera de mi hábitat natural : (

ZüNdFoLGe

facil...

static void  funcion_magica(ArrayList<objeto> c, Iterator<objeto> c_it) {
  for ( ;c_it.hasNext(); ) if (!objetoCumpleCondicion(c_it.next())) c_it.remove();
}

Zaelsius

( Bueno la función_magica no era el foco, se supone que es la que me inicializa la lista al principio. )

El código que has puesto es parecido al mio, un bucle en definitiva. Pero no es un "one liner" como lo que ha puesto Ethy en Python ... ( y no vale poner todo el código del bucle en una sola linea ;) )


¿Se supone que el siguiente código filtra una lista en Java en una sola línea?

li.removeAll(elems.contains(x.method) ? null : x);

Vicente


var filteredList = from item in itemsList
         where filterList.Contains(item.Method())
         select item;


Estoy casi seguro de que compila en LinQ :p (no tengo el VS2008 aquí).

Un saludo!

ZüNdFoLGe

Cita de: "ZaelSiuS"
El código que has puesto es parecido al mio, un bucle en definitiva. Pero no es un "one liner" como lo que ha puesto Ethy en Python ...

"Ethy" uso un for, al igual que yo, un bucle en definitiva.

Cita de: "ZaelSiuS"
( y no vale poner todo el código del bucle en una sola linea ;) )

No mencionaste eso en tu post anterior. Aparte no entiendo...es mejor lenguaje aquel en el que las cosas se escriben en menos lineas?
Lo nunca visto. Con ese criterio, usa haskell, o assembler, ni siquiera pyhton...

Cita de: "ZaelSiuS"
¿Se supone que el siguiente código filtra una lista en Java en una sola línea?

li.removeAll(elems.contains(x.method) ? null : x);

Lamento decirte que si, dado un objeto x y la collection elems cualquiera sea es un filtro en una linea, O NO?
Si tiene consitencia o no con el ejemplo de Ethy, era trabajo de Ethy corregirlo...despues de trabajar 1 año con java supuse que no deberia ser tan complejo.

ethernet

Es que estaba mostralo como hacerlo sin ayuda de ningún tipo de método del extenso api de python XD, pero si quereis se puede hacer sin que sea "one-liner":


filter(lambda x: x.method() in [1,'2',3], li);

Zaelsius

Zündfolge, sigo sin enterarme :(

Si tengo el siguiente ejemplo, ¿cómo uso tu código?

import java.util.ArrayList;

class Foo
{
public int x;

public Foo()
{

x = (int)(2 * Math.random());
}

public boolean method()
{
return ( x == 1 );
}
}

class Test
{


public static void main(String args[])
{
ArrayList<Foo> li = new ArrayList<Foo>();

// Metemos algunos elementos en la lista
for ( int i = 0; i < 10; i ++ )
li.add( new Foo() );


// Quiero filtrar la lista "li" y dejar solo aquellos elementos cuya x == 1,
// con una sola linea de codigo ala Python :P

// ¿? ¿? ¿? ¿? ¿? ¿? ¿? FILTRAR AQUI ¿? ¿? ¿? ¿? ¿? ¿?
//li.removeAll(li.contains(Foo.method) ? null : Foo);

// Imprimir lista filtrada ( sin los elementos cuya x == 0 )
for ( Foo foo : li )
System.out.println( foo.x );
}
};



Citarli.removeAll(elems.contains(x.method) ? null : x);

... dado un objeto x y la collection elems cualquiera sea es un filtro en una linea, O NO?
Si tiene consitencia o no con el ejemplo de Ethy, era trabajo de Ethy corregirlo...despues de trabajar 1 año con java supuse que no deberia ser tan complejo.

Yo solo tengo una lista que quiero filtrar, en una sola línea/sentencia de código. Puedo hacer que Foo tenga un método "method", sin problemas... pero no veo de donde sale "x" y  "elems", yo solo tengo una lista "li".


Citares mejor lenguaje aquel en el que las cosas se escriben en menos lineas?

Mejor no lo sé, cada lenguaje tiene su ámbito de uso. Pero si puedo expresar lo mismo con una línea que con cinco, por qué no usar la versión corta.

Y que conste que uso tanto Python como Java en mi PFC. Y C++ a diario en otras cosas..

ZüNdFoLGe

Por lo que veo sigues dando cuerda...

Cita de: "ZaelSiuS"
Yo solo tengo una lista que quiero filtrar, en una sola línea/sentencia de código. Puedo hacer que Foo tenga un método "method", sin problemas... pero no veo de donde sale "x" y  "elems", yo solo tengo una lista "li".

li.removeAll(li.contains(Foo.method) ? null : Foo);


Enterate primero que ese filtro no aplica a tu problema, o no te das cuenta? y no por eso deja de ser un filtro. Ya lo dije en el post anterior.

Cita de: "ZaelSiuS"
Y que conste que uso tanto Python como Java en mi PFC. Y C++ a diario en otras cosas..

Cita de: "ZaelSiuS"
Yo lo veo como un complemento a los lenguajes "de producción" como C++ o Java, no un sustituto. De momento.

Entonces usa un metodo nativo python cuando quieras filtros de una linea.  :wink:
De tu frase se desprende que Pyhton NO ES UN LENGUAJE "DE PRODUCCION". Por ende, de poco me sirve tanto ahorro en lineas de codigo. Para que? Pero si a partir de esto surge la siguiente conclusión:
Cita de: "ethernet"
Sun empieza a darse cuenta de la mierda que ha creado y todo lo que java tendría que haber sido es lo que pretenden con java7, jython y jruby (ya han contratado a los creadores de ambas).
En este caso lo unico que puedo decir es "joder, que buen programador".

Zaelsius

Total, que Ethernet tenía parte de razón, no se puede hacer lo que él (y yo) quería en Java en una línea. El resto son discusiones sobre semántica (qué significa realmente "de producción" entrecomillado, etc.) y no voy a entrar ahí..

Gracias por la aclaración de todos modos :)

ZüNdFoLGe

Cita de: "ZaelSiuS"El resto son discusiones sobre semántica (qué significa realmente "de producción" entrecomillado, etc.)

No me entero. Yo por lenguaje "de producción" entiendo algo con 95% de parecido a DE PRODUCCION. No entiendo que tanto podría variar.

Cita de: "ZaelSiuS"Gracias por la aclaración de todos modos :)
de nada  :wink:






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.