Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Convertir A Un Tipo De Estructura De Datos O Hacerlo Más Directamente
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 ! ....  
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Tipo De Datos Personalizado Shell General 5 Lunes, 28 Febrero 2011, 12:12 Ver último mensaje
jsbsan
No hay nuevos mensajes Que Tipo De Base De Datos Me Conviene? v3ctor Bases de Datos 19 Sabado, 28 Febrero 2015, 16:30 Ver último mensaje
jsbsan
No hay nuevos mensajes [Python] Vídeotutoriales De Estructura De... Shell Python 0 Jueves, 08 Junio 2017, 19:16 Ver último mensaje
Shell
No hay nuevos mensajes Tipo De Datos Común En Distintas Librerías Shell General 0 Lunes, 27 May 2019, 00:18 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron