Autor |
Mensaje |
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Filtrar Elementos Duplicados En Un Array Tipo String[]
Hola,
A raíz de este código de Python:
lista = list(set(lista)) #Filtra la lista quitando los duplicados
Me ha surgido esta pregunta; yo se hacerlo a mi manera en gambas, pero, ¿Existe algo parecido en gambas de como se hace en Python?
Gracias.
última edición por gambafeliz el Lunes, 09 Septiembre 2019, 10:40; editado 1 vez
|
#1 Lunes, 09 Septiembre 2019, 10:39 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
Que yo sepa, no.
=================== No podemos regresar
|
#2 Lunes, 09 Septiembre 2019, 11:42 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
Que yo sepa tampoco, peeeeero...
Tengo esta pequeña funcion que lo hace
Saludos.
|
#3 Lunes, 09 Septiembre 2019, 12:05 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
shordi y tincho
Muchas gracias.
Nota: Que se le va hacer
|
#4 Lunes, 09 Septiembre 2019, 12:22 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
Que yo sepa tampoco, peeeeero...
Tengo esta pequeña funcion que lo hace
Saludos.
Permiteme una corrección, sino te importa. Como estamos con cadenas, he tenido el siguiente problema con tu código:
"AliExpress"
"AliExpress "
Al pasarlo por tú código me ha dado por válidas ambas cadenas, pero son la misma. Por lo tanto corrige tu IF de comparación por este otro:
If aCadena.Find(LTrim(RTrim(sCadena))) = -1 Then
Saludos, joven.
|
#5 Lunes, 09 Septiembre 2019, 12:45 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
...Permiteme una corrección, sino te importa. Como estamos con cadenas, he tenido el siguiente problema con tu código:
"AliExpress"
"AliExpress "
Al pasarlo por tú código me ha dado por válidas ambas cadenas, pero son la misma. Por lo tanto corrige tu IF de comparación por este otro:
If aCadena.Find(LTrim(RTrim(sCadena))) = -1 Then
Podría ser pero cual es el válido a dejar en la lista ? el que tiene espacio al final o el que no lo tiene.
Si a la función le agregásemos dicha sentencia de comparación ya dejaría de ser una función general.
Como sabes, en unix o linux en este caso, la "filosofía" pasa por tener pequeños programas o funciones que hacen una cosa y bien, y si se necesita mas complejidad entonces se "acoplan" la salida de un programa con la entrada de otro.
Por eso la función no comprueba el "parecido" de las cadenas solo compara si son "iguales" o no.
Lo mismo pasaría con "andaafreirchurros" y "ANDAAFREIRCHURROS" en ambos casos se impera a ir a freír churros pero ¿Con mayúsculas o con minúsculas?
Recuerda también que *nix diferencia G de g no como en güindos.
Pero gracias de todas maneras por el comentario.
Saludos.
|
#6 Lunes, 09 Septiembre 2019, 13:27 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
LTrim(RTrim(sCadena))
...más exacto con Trim( ).
http://gambaswiki.org/wiki/lang/trim
|
#7 Lunes, 09 Septiembre 2019, 14:44 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
LTrim(RTrim(sCadena))
...más exacto con Trim( ).
http://gambaswiki.org/wiki/lang/trim
Gracias vuott pero no dije lo de Trim por que en la ayuda dice que solo "quita los espacio del final" y yo tonto de mi me lo he creído.
Pero gracias por aclaramelo.
Saludos
Descripción: |
|
Tamaño: |
88.69 KB |
Visto: |
17 veces |
|
Descripción: |
|
Tamaño: |
88.69 KB |
Visto: |
17 veces |
|
Descripción: |
|
Tamaño: |
88.69 KB |
Visto: |
17 veces |
|
|
#8 Lunes, 09 Septiembre 2019, 16:06 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
Si a la función le agregásemos dicha sentencia de comparación ya dejaría de ser una función general.
Como sabes, en unix o linux en este caso, la "filosofía" pasa por tener pequeños programas o funciones que hacen una cosa y bien, y si se necesita mas complejidad entonces se "acoplan" la salida de un programa con la entrada de otro.
Por eso la función no comprueba el "parecido" de las cadenas solo compara si son "iguales" o no.
tincho:
Como habrás notado yo lo que había hecho con mi intervención es un acto de buena fe. Y si no lo viste así pues perdón, vale.
Dejando de lado esta aclaración que creo que sobra para ti y para mi o eso supongo, vale
Mira he analizado tus palabras y tiene no solo la razón sino que es como dices.
Yo quería una función para filtrar los duplicados y es lo que me has aportado. Si yo quería una función para limpiar los espacio de la lista pues es otra y debe ser otra. Así se desarrolla de forma más coherente.
Son cosas que se aprenden con los años pero a mi a veces se me va la pinza y es bueno que otra persona te aclare las ideas erróneas.
Gracias, saludos.
|
#9 Lunes, 09 Septiembre 2019, 16:12 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
...Si yo quería una función para limpiar los espacio de la lista pues es otra y debe ser otra. Así se desarrolla de forma más coherente.
No te creas que eso de programar de forma coherente ya nos viene de fabrica, en mi caso que vengo a la programación de forma autodidacta y voy aprendiendo de prueba-error y de ver el código de los demás. Así que esto de hacer funciones pequeñas que hace una sola cosa permite reutilizar el código una barbaridad de veces.
Por este motivo cuando veo que hay algo conceptual que se discute trato de transmitir mi experiencia, y explayarme un poco mas. Para intentar aconsejar desde la mejor de las inteciones.
Ojo no digo que lo mejor, solo es mi experiencia.
Saludos.
|
#10 Lunes, 09 Septiembre 2019, 20:33 |
|
|
|