Filtrar Elementos Duplicados En Un Array Tipo String[]

Filtrar Elementos Duplicados En Un Array Tipo String[]
Article
Quote    Download Post  
Post 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.



 
Last edited by gambafeliz on Monday, 09 September 2019, 10:40; edited 1 time in total 
gambafeliz - Profile PM  
gambafeliz [ Monday, 09 September 2019, 10:39 ]


Filtrar Elementos Duplicados En Un Array Tipo String[]
Comments
Quote    Download Post  
Post Re: Filtrar Elementos Duplicados En Un Array Tipo String[] 
 
Que yo sepa, no.



 
shordi - Profile PM  
shordi [ Monday, 09 September 2019, 11:42 ]
Quote    Download Post  
Post Re: Filtrar Elementos Duplicados En Un Array Tipo String[] 
 
Que yo sepa tampoco, peeeeero...
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
 

Saludos.



 
tincho - Profile PM  
tincho [ Monday, 09 September 2019, 12:05 ]
Quote    Download Post  
Post Re: Filtrar Elementos Duplicados En Un Array Tipo String[] 
 
shordi y tincho

Muchas gracias.

Nota: Que se le va hacer  



 
gambafeliz - Profile PM  
gambafeliz [ Monday, 09 September 2019, 12:22 ]
Quote    Download Post  
Post Re: Filtrar Elementos Duplicados En Un Array Tipo String[] 
 
tincho escribió: [Ver mensaje]
Que yo sepa tampoco, peeeeero...
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
 

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.



 
gambafeliz - Profile PM  
gambafeliz [ Monday, 09 September 2019, 12:45 ]
Quote    Download Post  
Post Re: Filtrar Elementos Duplicados En Un Array Tipo String[] 
 
gambafeliz 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

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.



 
tincho - Profile PM  
tincho [ Monday, 09 September 2019, 13:27 ]
Quote    Download Post  
Post Re: Filtrar Elementos Duplicados En Un Array Tipo String[] 
 
gambafeliz escribió: [Ver mensaje]
LTrim(RTrim(sCadena))


...más exacto con Trim( ).

http://gambaswiki.org/wiki/lang/trim



 
vuott - Profile PM  
vuott [ Monday, 09 September 2019, 14:44 ]
Quote    Download Post  
Post Re: Filtrar Elementos Duplicados En Un Array Tipo String[] 
 
vuott escribió: [Ver mensaje]
gambafeliz escribió: [Ver mensaje]
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

Trim.png
Description:  
Filesize: 88.69 KB
Viewed: 17 Time(s)

Trim.png

Trim.png
Description:  
Filesize: 88.69 KB
Viewed: 17 Time(s)

Trim.png

Trim.png
Description:  
Filesize: 88.69 KB
Viewed: 17 Time(s)

Trim.png





 
gambafeliz - Profile PM  
gambafeliz [ Monday, 09 September 2019, 16:06 ]
Quote    Download Post  
Post Re: Filtrar Elementos Duplicados En Un Array Tipo String[] 
 
tincho escribió: [Ver mensaje]

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.



 
gambafeliz - Profile PM  
gambafeliz [ Monday, 09 September 2019, 16:12 ]
Quote    Download Post  
Post Re: Filtrar Elementos Duplicados En Un Array Tipo String[] 
 
gambafeliz escribió: [Ver mensaje]
...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.



 
tincho - Profile PM  
tincho [ Monday, 09 September 2019, 20:33 ]
Display posts from previous:    
Post new topic  Reply to topic  Page 1 of 1
 
 

Users browsing this topic: 0 Registered, 0 Hidden and 1 Guest
Registered Users: None


 


   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1215s (PHP: -28% SQL: 128%)
SQL queries: 26 - Debug Off - GZIP Enabled