ความยาวและการเรียงลำดับ
นับและเรียงลำดับลำดับข้อมูล
ความยาวและการเรียงลำดับ เป็นบทเรียน Lua Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Lua Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Lua Academy มีบทเรียนทั้งหมด 4 บทเรียน
ตัวดำเนินการหาความยาว
ตัวดำเนินการ # จะคืนค่าจำนวนรายการในลำดับ
สำหรับตารางที่เริ่มจาก 1 และมีองค์ประกอบสามรายการ #t จะมีค่าเป็น 3 รายการสุดท้ายจะอยู่ที่ดัชนี #t
local list = {"a", "b", "c"}
print(#list)
print(list[#list])ความยาวในลูป
ใช้ #t เป็นขอบเขตบนของลูป for แบบตัวเลขเพื่อเข้าถึงทุกดัชนี
เนื่องจากลำดับเริ่มนับจาก 1 ช่วงจึงเป็น 1, #t
local nums = {10, 20, 30, 40}
for i = 1, #nums do
print(i, nums[i])
endตารางว่าง
ลำดับว่างจะมีความยาวเป็น 0
ดังนั้น #t == 0 จึงเป็นวิธีตรวจสอบอย่างรวดเร็วว่ารายการมีองค์ประกอบหรือไม่
local empty = {}
print(#empty)
if #empty == 0 then
print("list is empty")
endความยาวหลังการเปลี่ยนแปลง
เมื่อคุณเพิ่มหรือนำรายการออกด้วยฟังก์ชันของตาราง ค่า # จะอัปเดตตามนั้น
insert จะเพิ่มจำนวน ส่วน remove จะลดจำนวน
local list = {"a", "b"}
table.insert(list, "c")
print(#list)
table.remove(list)
print(#list)ช่องว่างทำให้ความยาวใช้ไม่ได้
# จะเชื่อถือได้เฉพาะกับลำดับที่ไม่มีช่องว่างเท่านั้น ช่องว่างอาจทำให้ผลลัพธ์ไม่ระบุแน่ชัด
ใช้ table.insert และ table.remove เพื่อให้ค่า # ยังคงเชื่อถือได้
local good = {1, 2, 3}
print(#good)
table.insert(good, 4)
print(#good)การเรียงลำดับในตารางเดิม
table.sort(t) จะเรียงลำดับลำดับเดิมใหม่ โดยค่าเริ่มต้นจะเรียงจากน้อยไปมาก
ฟังก์ชันนี้เปลี่ยนแปลงตารางเดิม แทนที่จะคืนค่าตารางใหม่
local nums = {3, 1, 2}
table.sort(nums)
print(nums[1], nums[2], nums[3])การเรียงลำดับสตริง
โดยค่าเริ่มต้น สตริงจะถูกเรียงตามตัวอักษร โดยเปรียบเทียบทีละตัวอักษร
หลังการเรียงลำดับ ดัชนี 1 จะเก็บรายการแรกตามลำดับ
local names = {"Cy", "Ann", "Bob"}
table.sort(names)
print(names[1], names[2], names[3])ลำดับจากมากไปน้อย
ส่งฟังก์ชันเปรียบเทียบเพื่อควบคุมลำดับ การคืนค่า a > b จะเรียงจากค่ามากไปหาค่าน้อย
ฟังก์ชันนี้จะตัดสินว่า a ควรอยู่ก่อน 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])การเปรียบเทียบแบบกำหนดเอง
ตัวเปรียบเทียบช่วยให้คุณเรียงลำดับตามกฎใดก็ได้ เช่น เรียงตามความยาวของสตริงแทนการเรียงตามตัวอักษร
ในตัวอย่างด้านล่าง คำที่สั้นกว่าจะอยู่ก่อน
local words = {"hello", "hi", "howdy"}
table.sort(words, function(a, b)
return #a < #b
end)
print(words[1], words[2], words[3])ความยาวและการเรียงลำดับ
นำเครื่องมือมาทำงานร่วมกัน: เรียงลำดับรายการ แล้วอ่านค่าที่ปลายทั้งสองตามตำแหน่ง
หลังเรียงจากน้อยไปมาก ค่าต่ำสุดจะอยู่ที่ดัชนี 1 และค่าสูงสุดจะอยู่ที่ดัชนี #t
local data = {7, 2, 9, 4}
table.sort(data)
print("min:", data[1])
print("max:", data[#data])เรียงลำดับแล้ววนซ้ำ
ขั้นตอนต่อเนื่องที่พบบ่อยคือ เรียงลำดับลำดับก่อน แล้วใช้ ipairs วนดูเพื่อแสดงผลตามลำดับ
การเรียงลำดับจะเปลี่ยนตารางเดิมที่เริ่มนับจาก 1 ดังนั้นการวนซ้ำจึงเป็นไปตามลำดับใหม่
local scores = {50, 10, 30}
table.sort(scores)
for i, s in ipairs(scores) do
print(i, s)
endตรวจสอบอย่างรวดเร็ว
ทบทวนว่าตัวดำเนินการหาความยาวให้ค่าใดแก่คุณ
สรุปทบทวน
คุณได้เรียนรู้ว่า #t จะนับรายการในลำดับที่ไม่มีช่องว่าง รายการสุดท้ายอยู่ที่ t[#t] และ table.sort จะเรียงลำดับข้อมูลในตารางเดิม โดยเรียงจากน้อยไปมากเป็นค่าเริ่มต้น หรือใช้ตัวเปรียบเทียบแบบกำหนดเองได้
เมื่อทำงานร่วมกับ insert, remove และ ipairs ตอนนี้คุณก็สามารถจัดการลำดับของ Lua ได้อย่างมั่นใจ
คำถามที่พบบ่อย
บทเรียน “ความยาวและการเรียงลำดับ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ความยาวและการเรียงลำดับ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Lua Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Lua Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ความยาวและการเรียงลำดับ”
นับและเรียงลำดับลำดับข้อมูล คุณปฏิบัติ Lua Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Lua Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Lua Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “ความยาวและการเรียงลำดับ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Lua Academy นี้ได้ไหม
ได้ บทเรียน Lua Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- อาร์เรย์ในรูปตาราง
- เพิ่มและลบรายการ
- วนซ้ำด้วย ipairs
- ความยาวและการเรียงลำดับ