Convertir A Un Tipo De Estructura De Datos O Hacerlo Más Directamente


Objetivo: Convertir A Un Tipo De Estructura De Datos O Hacerlo Más Directamente
Buenas!.

Repasando el manual de Python. Este tiene una serie de funciones que por ejemplo, puede
convertir una lista de lista ( supongamos un array de array cuyos elementos deben ser dos ) a un diccionario ( colección ).

Así por ejemplo si tuviéramos una lista de lista ( array de array) de niños y sus edades.

aniñosedades = [ [ "María", 10 ], ["Antonio", 5], ["Emilio", 8] ]


Y estos datos convertirlos directamente a un diccionario (colección ).
Bien, parece que en gambas no existe una función que haga eso.
En Python se usaría:

dniñosedades = dict(aniñosedades)


Ojo: Siempre, que tengamos la seguridad que cada lista interior tiene dos elementos.

En gambas tuve que hacerlo de esta forma:

Private apersonas As New Variant[][]
Private cpersonas As New Collection

Public Sub Main()

apersonas.Add(["Maria", 10])
apersonas.Add(["Antonio", 5])
apersonas.Add(["Emilio", 8])

cpersonas = AColeccion(apersonas)
Stop

End

Public Function AColeccion(listadelista As Variant[]) As Collection

Dim parvalor As Variant[]
Dim clave As Variant
Dim valor As Variant
Dim unacoleccion As New Collection

For Each parvalor In listadelista
clave = parvalor[0]
valor = parvalor[1]
unacoleccion.Add(valor, clave)
Next

Return unacoleccion

End


Entonces pregunto ahora. Si sabemos que tipo de estructura van a tener nuestros datos, ¿ para que hacemos la conversión ?.
¿ No podríamos haber definido directamente la colección con el nombre del niño y la edad ?.

Saludos

Objetivo: Re: Convertir A Un Tipo De Estructura De Datos O Hacerlo Más Directamente
Lo cierto es que no hace falta usar:

Private apersonas As New Variant[][]


Con esto es suficiente.

Private apersonas As New Variant[]


Como ya sabéis, si dices un array de tipo variant, esto puede contener cualquier cosa. Un array de lo que sea. Mmm.
Luego hay variables que no son necesarias pero es para que se entienda mejor el ejemplo,

Saludos

Objetivo: Re: Convertir A Un Tipo De Estructura De Datos O Hacerlo Más Directamente
...te olvidaste de las " Estructuras ".

uhmmm.... claro, siendo tú un Pythonista ! ....

Perfil MP  
Objetivo: Re: Convertir A Un Tipo De Estructura De Datos O Hacerlo Más Directamente
Vuott:

Citar:

...te olvidaste de las " Estructuras ".


En el ejemplo intentaba crear una conversión entre arrays y colecciones.
¿ Quieres crear un array de estructuras ?. Se sale un poco del ejemplo original en Python.
En Python no existen las estructuras. A menos que haya que rebuscar mucho en módulos.

Se que existen los arrays si importas un modulo, pero para mi que es algo obsoleto en ese lenguaje.
Quizás por algún tipo de exigencia para problemas de matemáticas. Con las listas le sobra a Python.

En vez de estructuras, directamente se podía usar una clase. Pero eso ya sabes que tambien se puede hacer en Gambas.
Como dijo una vez JGuardón, la estructura se puede usar para sustituir a una pequeña clase que no requiera
mucha complejidad.

Citar:

uhmmm.... claro, siendo tú un Pythonista ! ....


He usado las estructuras desde la época de Visual Basic 6. Tipos definidos le llamaban.
Y en gambas las entendí mejor. Pero con la posibilidad de las clases las estructuras quedan un poco
obsoletas.

Siendo de "C".... ordicolere estarás acostumbrado a las estructuras.

Saludos

Objetivo: Re: Convertir A Un Tipo De Estructura De Datos O Hacerlo Más Directamente
Shell escribió: [Ver mensaje]
Siendo de "C".... estarás acostumbrado a las estructuras.

Por supuesto !
Mira, Consul, el tripudio, el triunfo, el regocijo de Estructuras en este mi codigo traducido de C a Gambas:

http://www.gambas-it.org/wiki/index...I_di_Vorbisfile

última edición por vuott el Domingo, 09 Julio 2017, 14:19; editado 1 vez
Perfil MP  
Objetivo: Re: Convertir A Un Tipo De Estructura De Datos O Hacerlo Más Directamente
Shell escribió: [Ver mensaje]
Como dijo una vez JGuardón, la estructura se puede usar para sustituir a una pequeña clase que no requiera
mucha complejidad.

Podemos decir que una Estructura en gambas es como una Clase sin Metodos ni Eventos.

última edición por vuott el Lunes, 10 Julio 2017, 00:14; editado 1 vez
Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No 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.4398s (PHP: -54% SQL: 154%)
Consultas SQL: 25 - Debug off - GZIP Activado