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.
Filtrar Elementos Duplicados En Un Array Tipo String[]
Objetivo: Filtrar Elementos Duplicados En Un Array Tipo String[]
última edición por gambafeliz el Lunes, 09 Septiembre 2019, 10:40; editado 1 vez
última edición por gambafeliz el Lunes, 09 Septiembre 2019, 10:40; editado 1 vez
Objetivo: Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
Que yo sepa tampoco, peeeeero...
Tengo esta pequeña funcion que lo hace
Saludos.
Tengo esta pequeña funcion que lo hace
Public Function ListDeldup(stxInput As String[]) As String[] ''Elimina elementos duplicados de una lista, requiere una String[] y devuelve una String[].
Dim strTmp As String
Dim stxOut As New String[]
stxInput.Sort
For Each strTmp In stxInput
If stxOut.Find(strTmp) = -1 Then
stxOut.Add(strTmp)
Endif
Next
Return stxOut
End
Dim strTmp As String
Dim stxOut As New String[]
stxInput.Sort
For Each strTmp In stxInput
If stxOut.Find(strTmp) = -1 Then
stxOut.Add(strTmp)
Endif
Next
Return stxOut
End
Saludos.
Objetivo: Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
shordi y tincho
Muchas gracias.
Nota: Que se le va hacer
Muchas gracias.
Nota: Que se le va hacer
Objetivo: 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
Saludos, joven.
tincho escribió: [Ver mensaje]
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.
Objetivo: Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
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.
gambafeliz escribió: [Ver mensaje]
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.
Objetivo: Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
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
vuott escribió: [Ver mensaje]
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
Objetivo: Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
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.
tincho escribió: [Ver mensaje]
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.
Objetivo: Re: Filtrar Elementos Duplicados En Un Array Tipo String[]
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.
gambafeliz escribió: [Ver mensaje]
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.
Página 1 de 1
No puede crear mensajesNo puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.4491s (PHP: -79% SQL: 179%)
Consultas SQL: 48 - Debug off - GZIP Activado