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
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