Lua Academy · Oppitunti

Alkioiden lisääminen ja poistaminen

Käyttäkää table.insert- ja remove-funktioita.

Oppitunti 2/413 vaihetta

Alkioiden lisääminen ja poistaminen on ilmainen Lua Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Lua Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Lua Academy-kurssilla on yhteensä 4 oppituntia.

Sekvenssin kasvattaminen

Oikeat listat muuttavat kokoaan ohjelman suorituksen aikana. Lua tarjoaa funktion table.insert, jolla alkioita voidaan lisätä loppuun.

Koska sekvenssit ovat ykköspohjaisia, kahden alkion jälkeen lisätty alkio tulee indeksiin 3.

local list = {"a", "b"}
table.insert(list, "c")
print(list[1], list[2], list[3])

table.insert lisää loppuun

Kahdella argumentilla kutsuttuna table.insert(t, value) sijoittaa arvon value heti nykyisen viimeisen indeksin jälkeiseen paikkaan.

Jokainen kutsu kasvattaa sekvenssiä yhdellä alkiolla ja pitää indeksit peräkkäisinä.

local q = {}
table.insert(q, "first")
table.insert(q, "second")
print(q[1], q[2])

Lisääminen tiettyyn paikkaan

Kolmella argumentilla table.insert(t, pos, value) lisää arvon indeksiin pos ja siirtää myöhempiä alkioita eteenpäin.

Tässä sijoitamme arvon "X" paikkaan 2, joten vanha toinen alkio siirtyy paikkaan 3.

local list = {"a", "b", "c"}
table.insert(list, 2, "X")
print(list[1], list[2], list[3], list[4])

Lisääminen alkuun

Lisää alkio alkuun sijoittamalla se paikkaan 1. Jokainen olemassa oleva alkio siirtyy yhden indeksin verran eteenpäin.

Tämä on kätevää mutta hitaampaa suurilla listoilla, koska Luan täytyy siirtää kaikkia alkioita.

local list = {"b", "c"}
table.insert(list, 1, "a")
print(list[1], list[2], list[3])

Viimeisen alkion poistaminen

Yhdellä argumentilla kutsuttu table.remove(t) poistaa ja palauttaa viimeisen alkion.

Sekvenssi pienenee yhdellä alkiolla ja säilyy aukottomana.

local list = {"a", "b", "c"}
local gone = table.remove(list)
print("removed:", gone)
print(list[1], list[2], list[3])

Poistaminen tietystä paikasta

table.remove(t, pos) poistaa alkion kohdasta pos ja siirtää myöhempiä alkioita alaspäin aukon täyttämiseksi.

Muista, että paikat ovat ykköspohjaisia, joten pos = 1 poistaa ensimmäisen alkion.

local list = {"a", "b", "c"}
local gone = table.remove(list, 1)
print("removed:", gone)
print(list[1], list[2])

Remove palauttaa arvon

Molemmat table.remove-funktion muodot palauttavat poistamansa arvon, joten voit käyttää sitä heti.

Tämän ansiosta taulukko voi toimia pinona: lisää alkio insert-toiminnolla ja poista se remove-toiminnolla.

local stack = {}
table.insert(stack, 10)
table.insert(stack, 20)
local top = table.remove(stack)
print("popped:", top)

Yksinkertainen jono

Lisää alkio loppuun ja poista se alusta (pos = 1), niin saat jonon: ensin tullut poistuu ensin.

Jokainen poisto siirtää loput alkiot alaspäin, joten seuraava jonottaja on indeksissä 1.

local queue = {}
table.insert(queue, "Ann")
table.insert(queue, "Bob")
print("serving:", table.remove(queue, 1))
print("next:", queue[1])

Vältä manuaalisia aukkoja

Alkion asettaminen arvoon nil komennolla list[2] = nil voi jättää keskelle aukon ja rikkoa sekvenssin.

Suosi toimintoa table.remove, joka siirtää alkioita ja pitää indeksit peräkkäisinä.

local list = {"a", "b", "c"}
table.remove(list, 2)
print(list[1], list[2])

Rakentaminen syötteestä

Yleinen toimintatapa on aloittaa tyhjästä taulukosta ja lisätä alkioita sitä mukaa, kun dataa saapuu.

Tässä keräämme parilliset luvut uuteen sekvenssiin insert-toiminnolla.

local evens = {}
for n = 1, 6 do
  if n % 2 == 0 then
    table.insert(evens, n)
  end
end
print(evens[1], evens[2], evens[3])

Lisääminen ja poistaminen yhdessä

Voit yhdistellä toimintoja vapaasti. Alla lisäämme kolme nimeä ja poistamme sitten keskimmäisen.

Poiston jälkeen listassa on kaksi peräkkäistä alkiota.

local names = {}
table.insert(names, "Al")
table.insert(names, "Bea")
table.insert(names, "Cy")
table.remove(names, 2)
print(names[1], names[2])

Pikatarkistus

Pohdi, miten poistaminen siirtää sekvenssin alkioita.

Kertaus

Opit kasvattamaan listoja komennolla table.insert (lisäämällä loppuun tai ykköspohjaiseen paikkaan) ja pienentämään niitä komennolla table.remove, joka palauttaa poistetun arvon ja sulkee aukot.

Vältä manuaalisia nil-aukkoja. Seuraavaksi opit käymään alkiot siististi läpi komennolla ipairs.

Aloita maksutta

Opi Lua tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
40
Oppitunnit
159

Usein kysytyt kysymykset

Onko oppitunti ”Alkioiden lisääminen ja poistaminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Lua Academy-oppimispolun 3 oppituntia, myös oppitunnin “Alkioiden lisääminen ja poistaminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Lua Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Alkioiden lisääminen ja poistaminen”?

Käyttäkää table.insert- ja remove-funktioita. Harjoittelet Lua Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Lua Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Lua Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Alkioiden lisääminen ja poistaminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Lua Academy-oppitunnilla?

Kyllä. Jokainen Lua Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Taulukot Table-rakenteina
  2. Alkioiden lisääminen ja poistaminen
  3. Iterointi ipairsilla
  4. Pituus ja lajittelu
← Takaisin: Lua Academy