Listas. Manejo básico
Las listas son las colecciones nativas de datos más simples y flexibles con las que cuenta Python, lo que hace que sean usadas con mucha frecuencia.
Las listas son las colecciones nativas de datos más simples y flexibles con las que cuenta Python, lo que hace que sean usadas con mucha frecuencia.
| Colección | Ordenada | Mutable | Datos duplicados |
| Lista | Sí | Sí | Sí |
| Tupla | Sí | No | Sí |
| Conjunto (set) | No | Sí | No |
| Diccionario | Sí | Sí | Claves no, valores sí |
Dim edades() As Integeredades = Array(3,4,5,6)
... y otra para las PD esperadas para cada edad.
Dim ptos_max() AS Integerptos_max = Array(21,44,56,61)
For i = 0 To UBound(edades()))
For i = 0 To UBound(edades())If edades(i) = edad Then-> [Segunda condición]End IfNext
Valoracion = "Acierto total"If pd = ptos_max(i) ThenValoracion = "Resultado insuficiente"ElseEnd If
Esta es la forma más simple en la que se realiza la valoración de la PD, pero posiblemente la menos común. De todas formas, es fundamental, ya que, por muy complejas que sean las demás, todas parten de la relación que establecemos mediante la estructura que hemos explicado.
Sub CrearLista
Dim oHoja As Object, oCelda As ObjectDim listado() As StringDim annos As StringDim edad As Integerannos = al_edad()edad = CInt(annos)If edad > 6 Thenedad = 6End Iflistado() = copiaPal(edad)'Acceso a la páginaoHoja = ThisComponent.getSheets().getByName("ListaPal")oCelda = oHoja.getCellRangeByName("B2")oCelda.setString("Palabras")oCelda = oHoja.getCellRangeByName("C2")oCelda.setString("Puntos")For i = 0 To UBound(listado())oCelda = oHoja.getCellRangeByName("B" & i+3)oCelda.setString(listado(i))Next
End Sub
Function al_edad () As string
Dim oHoja As Object, oCelda As ObjectDim i As IntegerDim edad As String'Acceso a Resultados para capturar la edadoHoja = ThisComponent.getSheets().getByName("Resultados")oCelda = oHoja.getCellRangeByName("B4")edad = oCelda.getStringal_edad = edad
End Function
Function CopiaPal(al_edad As Integer)
'para acceso a objetosDim oHoja As Object, oCelda As ObjectDim listaPal () As String'Para acceso a datosDim i As IntegerDim max As IntegerDim edades() As IntegerDim ptos_max() AS Integeredades = Array(3,4,5,6)ptos_max = Array(21,44,56,61)'Calculo y establecimiento del límite superior del listadoFor i = 0 To UBound(edades())If edades(i) = al_edad Thenmax = ptos_max(i)End IfNextReDim listaPal(max-1)'Acceso a la hoja que contiene la base de datosoHoja = ThisComponent.getSheets().getByName("Matrices")For i = 0 To UBound(listaPal())oCelda = oHoja.getCellRangeByName("I" & i+1)listaPal(i) = oCelda.getString()NextCopiaPal = listaPal()
End Function
For i = 0 To UBound(edades())
If edades(i) = al_edad Then
max = ptos_max(i)
End If
Next
oCelda = oHoja.getCellRangeByName("B2")oCelda.setString("Palabras")
For i = 0 To UBound(listado())
oCelda = oHoja.getCellRangeByName("B" & i+3)
oCelda.setString(listado(i))
Next
Si deseáramos completar el procedimiento y dejar listo los materiales para un uso posterior deberíamos implementar código que capture el resultado de la aplicación del test (puntuación de cada ítem) para trasladarlos a la hoja Resultados, eliminando antes el contenido de la lista de palabras y de la puntuación.
A parte de este posible desarrollo del script, también nos podemos plantear otros que implican establecer un condicionamiento múltiple. Un ejemplo sobre PLON-R. Fonología podría ser seleccionar únicamente los fonemas y no los grupos fonémicos, o sólo los fonemas oclusivos, o sólo los fonemas sonoros... Los ejemplos son múltiples, tantos como variables diferenciadoras hayamos establecido. Además esas subcategorizaciones podemos establecerlas secuencialmente o mediante condicionales anidados. En cualquier caso, lo interesante es que podemos hacer uso del procedimiento básico que hemos explicado en esta entrada para automatizar la selección del contenido sobre el que trabajar en función de los criterios que nos interese aplicar en cada caso.