Longitud y ordenación
Cuente y ordene secuencias
Longitud y ordenación es una lección gratuita de Lua Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Lua Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Lua Academy incluye 4 lecciones en total.
El operador de longitud
El operador # devuelve el número de elementos de una secuencia.
En una tabla limpia basada en 1 con tres elementos, #t es 3. El último elemento se encuentra en el índice #t.
local list = {"a", "b", "c"}
print(#list)
print(list[#list])Longitud en un bucle
Use #t como límite superior de un bucle numérico for para visitar cada índice.
Como las secuencias comienzan en 1, el rango es 1, #t.
local nums = {10, 20, 30, 40}
for i = 1, #nums do
print(i, nums[i])
endTablas vacías
Una secuencia vacía tiene una longitud de 0.
Por eso, #t == 0 es una forma rápida de comprobar si una lista contiene elementos.
local empty = {}
print(#empty)
if #empty == 0 then
print("list is empty")
endLongitud después de cambios
Cuando añade o elimina elementos con las funciones de table, # se actualiza en consecuencia.
Insertar aumenta el recuento y eliminar lo reduce.
local list = {"a", "b"}
table.insert(list, "c")
print(#list)
table.remove(list)
print(#list)Los huecos hacen que la longitud deje de ser fiable
# solo es fiable en secuencias sin huecos. Un hueco puede hacer que el resultado no esté definido.
Use table.insert y table.remove para que # siga siendo fiable.
local good = {1, 2, 3}
print(#good)
table.insert(good, 4)
print(#good)Ordenar in situ
table.sort(t) reordena la secuencia in situ, de menor a mayor de forma predeterminada.
Modifica la tabla original en lugar de devolver una nueva.
local nums = {3, 1, 2}
table.sort(nums)
print(nums[1], nums[2], nums[3])Ordenar cadenas
De forma predeterminada, las cadenas se ordenan alfabéticamente, comparando los caracteres uno a uno.
Después de ordenar, el índice 1 contiene el primer elemento en el orden resultante.
local names = {"Cy", "Ann", "Bob"}
table.sort(names)
print(names[1], names[2], names[3])Orden descendente
Pase una función de comparación para controlar el orden. Devolver a > b ordena los elementos más grandes primero.
La función decide si a debe aparecer antes que b.
local nums = {3, 1, 4, 2}
table.sort(nums, function(a, b)
return a > b
end)
print(nums[1], nums[2], nums[3], nums[4])Comparaciones personalizadas
Los comparadores le permiten ordenar según cualquier regla, como la longitud de las cadenas en lugar del orden alfabético.
A continuación, las palabras más cortas aparecen primero.
local words = {"hello", "hi", "howdy"}
table.sort(words, function(a, b)
return #a < #b
end)
print(words[1], words[2], words[3])Longitud y ordenación
Combine las herramientas: ordene una lista y, después, lea los extremos según su posición.
Después de ordenar de forma ascendente, el mínimo se encuentra en el índice 1 y el máximo, en el índice #t.
local data = {7, 2, 9, 4}
table.sort(data)
print("min:", data[1])
print("max:", data[#data])Ordenar y luego iterar
Una secuencia habitual es ordenar la secuencia y después recorrerla con ipairs para imprimirla en orden.
La ordenación reordena la misma tabla basada en 1, por lo que la iteración sigue el nuevo orden.
local scores = {50, 10, 30}
table.sort(scores)
for i, s in ipairs(scores) do
print(i, s)
endComprobación rápida
Recuerde qué devuelve el operador de longitud.
Resumen
Ha aprendido que #t cuenta los elementos de una secuencia sin huecos, que el último elemento está en t[#t] y que table.sort reordena in situ (de forma ascendente de manera predeterminada o mediante un comparador personalizado).
Junto con insert, remove e ipairs, ahora puede gestionar secuencias de Lua con confianza.
Preguntas frecuentes
¿La lección «Longitud y ordenación» es gratis?
Sí — el texto completo de «Longitud y ordenación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Lua Academy, actualiza a CoddyKit PRO. El curso de Lua Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Longitud y ordenación»?
Cuente y ordene secuencias Practicas Lua Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Lua Academy?
No se requiere experiencia previa. Lua Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Longitud y ordenación»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Lua Academy?
Sí. Cada lección de Lua Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Arrays como tablas
- Añadir y eliminar elementos
- Iterar con ipairs
- Longitud y ordenación