Kai kalbame apie duomenų struktūras, sąvoka kortele. Šis terminas, plačiai naudojamas matematikoje, programavime ir duomenų bazėse, yra labai svarbus norint suprasti, kaip šiuolaikinės kalbos valdo informacijos grupes. Šiame straipsnyje mes nuodugniai išsiaiškinsime, kas yra rinkinys, jo charakteristikos ir kaip jos naudojamos įvairiose programavimo kalbose, tokiose kaip Python, Visual Basic ir netgi reliacinėse duomenų bazėse.
Kortelė iš esmės yra a užsakyta reikšmių seka. Tačiau, skirtingai nuo kitų tipų kolekcijų, pvz., sąrašų, jis turi ypatumų, dėl kurių jis yra gana naudingas tam tikrais atvejais: nekintamumas. Tai reiškia, kad sukūrus seką sudarančių elementų pakeisti negalima. Ši funkcija ypač efektyvi, kai norime užtikrinti, kad duomenys nepasikeistų netyčia ar tyčia. Tačiau prieš gilinantis į jo naudojimą ir ypatybes, pravartu suprasti jo kilmę ir terminijos priežastį.
Kortelių kilmė ir apibendrinimas
Terminas kortele kyla iš matematinio terminų apibendrinimo, pvz duetas (du elementai), trigubas (trys elementai) ir pan. Iš ten buvo nustatyta, kad seka n elementai (n yra sveikasis skaičius) vadinami a n kortele, kaip figūrų ar duomenų grupavimo būdas. Šis pavadinimas buvo išplėstas iki jo naudojimo programavimo ir matematikos srityse, nes kortelės leidžia dirbti su baigtiniu elementų skaičiumi, išlaikant jų tvarka ir struktūra.
Matematikoje, korteles Jie taip pat gali būti vertinami kaip sutvarkytų porų kūrimas, kai įvesties rinkinys gali būti apibrėžtas skirtingais grupavimo sluoksniais. Tokiu būdu a n kortele su daugiau nei dviem elementais jis gali būti pavaizduotas kaip sutvarkyta pirmojo įrašo pora ir poeilė, kurioje yra kiti įrašai. Ši organizavimo idėja buvo perkelta į programavimo pasaulį, kur korteles Tai itin galingas ir lankstus įrankis.
Pagrindinės „Tuples“ savybės
The korteles Jas apibrėžia daugybė savybių, dėl kurių jie yra unikalūs, palyginti su kitomis duomenų struktūromis:
- Nekintamumas: Sukūrus kortelių elementų modifikuoti neįmanoma. Tai reiškia, kad negalime iš naujo priskirti reikšmės konkrečiai vietai eilutėje. Pavyzdžiui, jei kortos pirmame elemente yra reikšmė 3, ji išliks tą reikšmę visą savo gyvavimo laiką.
- Užsakymas: Elementai rinkinyje saugomi tam tikra tvarka. Skirtingai nuo daugelio kitų kolekcijų, pvz., rinkinių, elementų įvedimo tvarka nėra atsitiktinė. Tvarka yra svarbi ir bus gerbiama, kai bendrausime su kortele.
- Skirtingi tipai: Skirtingai nuo kitų duomenų tipų, tokių kaip masyvai, kortose gali būti įvairių tipų elementų. Visiškai priimtina, kad eilutėje būtų ir sveikieji skaičiai, ir eilutės, ir loginiai skaičiai.
- Prieiga per indeksus: Kaip ir sąrašai, eilės leidžia pasiekti atskirus elementus per indeksus. Šie indeksai paprastai prasideda nuo skaičiaus 0. Be to, kadangi kortelės yra palyginamieji, galima patikrinti tarpusavio ryšius pagal jų elementų vertę.
Šios savybės daro korteles Jie idealiai tinka tais atvejais, kai turime sugrupuoti nevienalyčius duomenis ir užtikrinti, kad jie netyčia nepasikeistų vykdant programą. Pavyzdžiui, kortelė būtų tinkamas pasirinkimas koordinatėms (x, y) įrašyti plokštumoje, nes nustačius šios reikšmės neturėtų būti keičiamos.
Kortelių naudojimas programavimo kalbose
Kortelės Python
Python, korteles Tai labai universali ir plačiai naudojama duomenų struktūra. Jie apibrėžiami naudojant skliaustus () o elementus atskiriant kableliais. „Python“ kortelių ypatumas yra tas, kad, be jų nekintamumo, juose gali būti įvairių tipų elementų:
>>> t = (1, 'dos', 3)
Šiame pavyzdyje turime a kortele su trimis elementais: sveikuoju skaičiumi, teksto eilute ir kitu sveikuoju skaičiumi. Jei bandysime modifikuoti vieną iš jo elementų, pvz., iš naujo priskirti pirmojo skaičiaus reikšmę, Python pateiks klaidą:
>>> t[0] = 'uno'Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: 'tuple' object does not support item assignment
Neįmanoma modifikuoti kortelių yra tai, kas daro juos labai naudingais elementais, kai norime apsaugoti savo duomenis nuo atsitiktinių pakeitimų.
Veiksmai su kortelėmis Python
Kai kurios operacijos, kurias galime atlikti naudodami „Python“ eilutes, yra panašios į tas, kurias galime atlikti su sąrašais:
- Prieiga per indeksus: Eilės elementus galime pasiekti naudodami atitinkamą indeksą. Kaip jau minėta, indeksai Python jie prasideda nuo 0.
- Pjaustymas arba pjaustymas: Naudojant šį metodą galima išgauti kortelės dalis gabalas. Pavyzdžiui, galime gauti poeilę su elementais, esančiais anksčiau sukurtos eilės 1 ir 2 pozicijose:
>>> t[1:3]
Rezultatas bus nauja eilutė su elementais:
("du", 3)
Korpuso manipuliavimas: Nors kortos yra nekintančios ir negalime tiesiogiai pakeisti jų elementų, galima korėją priskirti naujam kintamajam arba sujungti kelias eilutes, kad būtų sukurtas naujas. Pavyzdžiui, naudodami operatorių galime pridėti dvi eilutes +:
>>> t = (1, 2) + (3, 4)>>> t(1, 2, 3, 4)
Eiletės reliacinėse duomenų bazėse
Duomenų bazių srityje a kortele yra eilutė reliacinės duomenų bazės lentelėje. Kiekviename lentelės stulpelyje yra reikšmė, susijusi su eilute.
Pavyzdžiui, vaizdo žaidimų grotuvo lentelėje kiekviena eilutė gali būti tokia struktūra:
(Jugador: 'Luis', Puntuación: 25)
Čia kortoje yra dvi reikšmės: žaidėjo vardas ir jo rezultatas. Šiame kontekste kortelės yra labai naudingos, nes leidžia nuosekliai susieti skirtingų tipų duomenis (pvz., eilutes ir sveikuosius skaičius, kaip matėme).
Išplėstiniai kortelių pavyzdžiai
Kai kuriose programavimo kalbose, pvz "Visual Basic", eilutes galima lengvai sukurti naudojant skliaustus ir kableliais atskirtų reikšmių rinkinį. Be to, „Visual Basic“ leidžia naudoti pavadintas korteles, kurios suteikia mums galimybę lanksčiai priskirti pavadinimus kiekvienam elementui sekoje.
Pavyzdžiui, a dviejų elementų eilutė gali būti loginė reikšmė ir teksto eilutė:
Dim holiday = (#07/04/2017#, "Independence Day", True)
Šiuo atveju buvo sukurta trijų elementų eilutė, kurioje pirmasis yra data, antrasis yra eilutė, o trečiasis yra loginė reikšmė.
Kortelės ir jų efektyvumas
Kitas aspektas, kurį reikia nepamiršti, yra tai, kad kortelės, būdamos nekintančios, yra santykinai efektyvesnės laiko ir atminties atžvilgiu nei sąrašai. Taip yra todėl, kad nepakitusi programavimo kalba neturi tvarkyti savo vidinės struktūros taip, kaip tai būtų daroma naudojant kintamą sąrašą. Štai kodėl kortelės yra pageidautinos, kai reikia didesnio efektyvumo arba kai duomenys nebus keičiami.
Konvertavimas tarp sąrašų ir eilučių
Galiausiai, daugelyje programavimo kalbų sąrašą galima konvertuoti į a kortele ir atvirkščiai. „Python“ tai galima lengvai padaryti naudojant iš anksto nustatytas funkcijas tuple () y sąrašas ().
>>> l = [1, 2, 3]>>> t = tuple(l)>>> t(1, 2, 3)
Panašiai galime konvertuoti seką į sąrašą:
>>> t = (1, 2, 3)>>> l = list(t)>>> l[1, 2, 3]
Šis lankstumas leidžia naudoti kiekvienu atveju tinkamiausią duomenų struktūrą, atsižvelgiant į programos poreikius.
Trumpai tariant, korteles Jie yra esminis įrankis programuojant ir tvarkant sudėtingus duomenis. Dėl savo nekintamumo ir gebėjimo grupuoti nevienalyčius duomenis jie yra itin naudinga struktūra įvairiuose kontekstuose – nuo algoritmo optimizavimo iki duomenų atvaizdavimo reliacinėse duomenų bazėse. Jei jums reikalingas duomenų tipas, kuris išlieka nepakitęs vykdant programą, seka yra puikus pasirinkimas.