Python Slice notation valdamine
Pythonis viilutamine on võimas funktsioon, mis võimaldab teil pääseda juurde loendi, korteeži või stringi elementide alamhulgale. Olenemata sellest, kas kasutate põhilõike (nt a[:]) või täiustatumaid (nt a[x:y:z]), võib lõikude tööpõhimõtte mõistmine teie kodeerimise tõhusust oluliselt suurendada.
Selles artiklis käsitletakse Pythoni viilude märkimise mehhanisme, selgitatakse, miks lõigud on ülemise piiriga välistavad, näidatakse, kuidas luua uusi loendeid iga N-nda üksusega, ja selgitatakse, kuidas loendilõikudega ülesanded toimivad. Lõpuks mõistate Pythonis viilutamist kindlalt.
Käsk | Kirjeldus |
---|---|
slice = a[::2] | Loob uue loendi, mis sisaldab iga teist elementi algsest loendist a. |
slice = a[::-1] | Pöörab loendi a. |
slice = a[1:7:2] | Eraldab elemendid indeksist 1 kuni 6 sammuga 2. |
slice1 = xs[0:2] | Eraldab loendist xs elemendid indeksist 0 kuni 1. |
nth_list = a[::3] | Loob uue loendi, mis sisaldab iga kolmandat elementi algsest loendist a. |
xs[0:2] = ["a", "b"] | Asendab xs-i indeksi 0 ja 1 elemendid "a" ja "b"-ga. |
print(slice) | Väljastab muutuja lõigu sisu konsooli. |
Python Slice Notation'i uurimine
Ülaltoodud skriptid näitavad erinevaid viise, kuidas kasutada Pythoni lõikude tähistust loenditega tõhusaks manipuleerimiseks. Esimene skript näitab põhilist viilutamist, kus loome loendi alamhulgad a kasutades erinevaid viilutähistusi. Näiteks, a[2:5] eraldab elemente indeksist 2 kuni 4, samas a[:3] saab kolm esimest elementi. The a[::2] süntaks ekstraheerib loendist iga teise elemendi ja a[::-1] muudab nimekirja vastupidiseks. Need viilutamistehnikad võimaldavad paindlikku andmete ekstraheerimist ja töötlemist, muutes andmete alamhulkadega töötamise lihtsamaks ilma algset loendit muutmata.
Teine skript selgitab viilutamise ülemise piiri ainuõiguse kontseptsiooni. sisse xs[0:2], on indeksite 0 ja 1 elemendid kaasatud, kuid indeks 2 on välistatud. See käitumine on kooskõlas Pythoni nullpõhise indekseerimisega ja aitab vältida ühekordseid vigu. Kolmas skript loob uue loendi iga N-nda elemendiga algsest loendist kasutades a[::3], mis näitab, kuidas viilutamist saab kasutada proovide võtmiseks või elementide vahelejätmiseks. Neljas skript näitab, kuidas määrata loendi konkreetsetele lõikudele uusi väärtusi. Kasutades xs[0:2] = ["a", "b"], asendatakse elemendid indeksiga 0 ja 1 sõnadega "a" ja "b". See osadele väärtuste määramise võimalus muudab loendi osade tõhusa muutmise lihtsaks.
Kuidas töötada Pythoni viilutähistusega
Pythoni viilutamise näited
# Basic slicing
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
slice1 = a[2:5] # [2, 3, 4]
slice2 = a[:3] # [0, 1, 2]
slice3 = a[::2] # [0, 2, 4, 6, 8]
slice4 = a[1:7:2] # [1, 3, 5]
slice5 = a[::-1] # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
print(slice1)
print(slice2)
print(slice3)
print(slice4)
print(slice5)
Pythoni osade ülemise piiri ainuõiguse mõistmine
Python Slice'i ülemise piiri seletus
# Explanation of upper-bound exclusivity
xs = [10, 20, 30, 40, 50]
slice1 = xs[0:2] # [10, 20]
slice2 = xs[:3] # [10, 20, 30]
print(slice1)
print(slice2)
# The end index is not included in the slice
# xs[0:2] includes xs[0] and xs[1], but not xs[2]
Uue loendi loomine iga N-nda üksusega
Pythoni loendi viilutamine N-nda elemendi jaoks
# Creating a new list with every Nth item
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
nth_list = a[::3] # [0, 3, 6, 9]
print(nth_list)
Väärtuste määramine loendilõikudega
Pythoni lõigu määramine
# Assignment with list slices
xs = [10, 20, 30, 40, 50]
xs[0:2] = ["a", "b"] # xs becomes ['a', 'b', 30, 40, 50]
print(xs)
Sukeldumine Python Slice notationi sügavamale
Lisaks põhilisele viilutamisele saab Pythoni lõikude tähistust rakendada ka täpsematel viisidel erinevate andmetega manipuleerimise ülesannete lahendamiseks. Üks võimas aspekt on negatiivne indekseerimine, mis võimaldab teil loendi lõpust välja lõigata. Näiteks, a[-3:] otsib loendi kolm viimast elementi a. See võib olla väga kasulik loendi lõpus olevatele elementidele pääsemiseks, teadmata selle pikkust. Veel üks täiustatud funktsioon on lõikude kombineerimine muude loenditoimingutega, nagu sortimine või filtreerimine. Saate sortida loendi lõigu kasutades sorted(a[2:5]), mis tagastab elementide sorteeritud versiooni indeksist 2 kuni 4 ilma algset loendit muutmata.
Lisaks saab viilutamist kasutada mitmemõõtmeliste loendite või loendite loenditega. Näiteks kui teil on 2D-loend, saate read ja veerud eraldi viiludeks. Kasutades matrix[:2] saab kaks esimest rida, samas [row[:2] for row in matrix] otsib iga rea kaks esimest veergu. Nende täiustatud viilutamistehnikate mõistmine võib oluliselt parandada teie võimet keerukate andmestruktuuridega tõhusalt manipuleerida. Pythoni viilude märkimine pole mitte ainult tööriist loendi osadele juurdepääsuks, vaid ka võimas funktsioon andmete analüüsimiseks ja töötlemiseks.
Levinud küsimused ja vastused Python Slice notationi kohta
- Mis on Pythonis põhilise viilutamise süntaks?
- Põhiline viilutamise süntaks on a[start:stop:step], kus start on algusindeks, stop on lõpuindeks (välja arvatud) ja step määrab indeksite vahelise tõusu.
- Kuidas loendit viilutamise abil ümber pöörata?
- Saate loendi ümber pöörata, kasutades viilu tähistust a[::-1].
- Kuidas pääsete juurde loendi viimasele elemendile?
- Loendi viimasele elemendile pääsete juurde kasutades a[-1].
- Mis teeb a[:3] tagasi?
- See tagastab loendi kolm esimest elementi a.
- Kas saate loendis olevaid elemente viilutamise abil muuta?
- Jah, lõikudele saab määrata uusi väärtusi, nt a[0:2] = [9, 8], mis asendab kaks esimest elementi 9 ja 8-ga.
- Kuidas lõigata loendit, et saada iga teine element?
- Saate kasutada iga teist elementi a[::2].
- Mis juhtub, kui jätate lõigu algusindeksi välja?
- Kui algusindeks jäetakse välja, algab lõik loendi algusest, nagu on näidatud a[:3].
- Kuidas lõigata 2D-loendit konkreetsete veergude saamiseks?
- Saate 2D-loendi veerge viiludeks lõigata, kasutades loendi mõistmist, näiteks [row[:2] for row in matrix] et saada kaks esimest veergu.
- Mida tähendab negatiivne indekseerimine lõikudes?
- Negatiivne indekseerimine tähendab loendamist loendi lõpust, seega a[-3:] saab kolm viimast elementi.
Viimased mõtted Pythoni viilutamise kohta
Pythoni viilude märkimine on mitmekülgne tööriist, mis lihtsustab andmetega manipuleerimise ülesandeid. Olenemata sellest, kas pöörate loendit tagasi, eraldate konkreetseid elemente või muudate loendi sisu, muudab viilutamine need toimingud lihtsaks ja tõhusaks. Lõikamise nüansside mõistmine, sealhulgas täiustatud tehnikad, nagu negatiivne indekseerimine ja mitmemõõtmeline viilutamine, võib oluliselt parandada teie programmeerimisoskusi ja tõhusust.