Python Slice notation valdamine
Pythoni viilude märkimine on võimas funktsioon, mis võimaldab teil pääseda juurde loendi, stringi või mis tahes muu järjestuse tüübi teatud osadele. Mõistes, kuidas seda tähistust kasutada, saate andmeid tõhusalt töödelda ja uusi alamhulki hõlpsalt luua. Selles artiklis käsitletakse lõikude märkimise mehhanismi, pakkudes selgeid näiteid ja selgitusi.
Olenemata sellest, kas töötate lihtsate lõikudega, nagu „a[:]”, või keerukamate mustritega, nagu „a[x:y:z]”, võib viilutamise läbi ja lõhki tundmine teie kodeerimisoskusi märkimisväärselt parandada. Uurime, kuidas lõigud töötavad, miks need ülempiirist välja jäävad ja kuidas saate seda funktsiooni oma Pythoni projektides kasutada.
| Käsk | Kirjeldus |
|---|---|
| a[x:y:z] | Loob loendist "a" lõigu, mis algab indeksist "x" kuni "y" sammuga "z". |
| a[:] | Loob lõigu kogu loendist "a" algusest lõpuni. |
| a[::2] | Loob loendist "a" lõigu, mis sisaldab iga teist elementi. |
| b[1:7:2] | Loob loendist „b” lõigu indeksist 1 kuni 6, sammudes 2 kaupa. |
| b[::3] | Loob lõigu loendist „b”, mis sisaldab iga kolmandat elementi. |
| c[1:3] = ['x', 'y'] | Asendab loendis „c” olevad elemendid indeksist 1 kuni 2 tähega „x” ja „y”. |
| c[:2] = [1, 2, 3] | Asendab loendi c esimesed kaks elementi [1, 2, 3]-ga. |
| c[3:] = [7, 8, 9] | Asendab loendi c elemendid indeksist 3 kuni lõpuni elemendiga [7, 8, 9]. |
| d[1:3] | Loob loendist „d” lõigu indeksist 1 kuni 2. |
Python Slice Notation'i uurimine
Ülaltoodud skriptid illustreerivad erinevaid viise, kuidas kasutada loenditega manipuleerimiseks Pythoni lõikude tähistust. Esimene skript demonstreerib põhilisi viilutamiskäske, näiteks a[x:y:z], mis loob indeksist alustava lõigu x juurde y sammuga z. See on kasulik loendi konkreetsetele elementidele tõhusaks juurdepääsuks. Käsk a[:] loob kogu loendist lõigu, mis võrdub loendi kopeerimisega. Kasutades a[::2] võimaldab valida loendis iga teise elemendi, muutes elementide vahelejätmise lihtsaks.
Teises skriptis uurime viilutamist astmeväärtustega, näiteks b[1:7:2] ja b[::3], mis on abiks kohandatud lõikude loomisel. Kolmas skript keskendub loendilõikudega määramisele. Näiteks, c[1:3] = ['x', 'y'] asendab elemendid indeksist 1 kuni 2 tähtedega "x" ja "y", näidates, kuidas saab lõike kasutada loendi osade muutmiseks. Lõplik skript näitab ülemise piiri eksklusiivsust, kus d[1:3] loob lõigu indeksist 1 kuni 2, jättes välja elemendi indeksi 3 juures.
Pythoni viilutamise märge: põhitõdede mõistmine
Pythoni skript viilutamise näidete jaoks
# Example 1: Basic slicinga = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]slice1 = a[2:5] # [2, 3, 4]slice2 = a[:4] # [0, 1, 2, 3]slice3 = a[4:] # [4, 5, 6, 7, 8, 9]slice4 = a[::2] # [0, 2, 4, 6, 8]print(slice1)print(slice2)print(slice3)print(slice4)
Etappväärtustega lõikude loomine
Pythoni skript etappidega lõikude loomiseks
# Example 2: Slicing with step valueb = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']slice5 = b[1:7:2] # ['b', 'd', 'f']slice6 = b[::3] # ['a', 'd', 'g']slice7 = b[1::2] # ['b', 'd', 'f', 'h']print(slice5)print(slice6)print(slice7)
Määramine loendilõikudega
Pythoni skript viilude abil määramiseks
# Example 3: Assigning new values to slicesc = [10, 20, 30, 40, 50]c[1:3] = ['x', 'y'] # [10, 'x', 'y', 40, 50]c[:2] = [1, 2, 3] # [1, 2, 3, 'y', 40, 50]c[3:] = [7, 8, 9] # [1, 2, 3, 7, 8, 9]print(c)
Ülemine ainuõigus osades
Pythoni skript, mis näitab ülemist piiri ainuõigust
# Example 4: Understanding upper-bound exclusivityd = [5, 10, 15, 20, 25, 30]slice8 = d[1:3] # [10, 15]slice9 = d[:4] # [5, 10, 15, 20]slice10 = d[2:] # [15, 20, 25, 30]print(slice8)print(slice9)print(slice10)
Sukeldumine Python Slice notationi sügavamale
Üks Pythoni viilude märkimise aspekt, mida sageli tähelepanuta jäetakse, on selle võime käsitleda negatiivseid indekseid. Negatiivsed indeksid võimaldavad teil loendi lõpust välja lõigata, pakkudes paindlikku võimalust elementidele vastupidises järjekorras juurde pääseda. Näiteks, a[-3:-1] tagastaks elemendid alates kolmandast kuni viimaseni kuni viimase elemendini, kuid ei sisalda seda. See võib olla eriti kasulik selliste ülesannete puhul nagu loendi ümberpööramine või viimaste elementide hankimine ilma loendi pikkust teadmata.
Teine võimas funktsioon on võimalus kasutada lõikeid mitmemõõtmelistes loendites või massiivides. Kahemõõtmelises loendis saate alamloendite eraldamiseks või isegi massiivi konkreetsete jaotiste muutmiseks kasutada lõikude tähistust. Näiteks, matrix[:2, 1:3] lõikaks 2D-massiivi kaks esimest rida ja veerge üks kuni kaks. Nende täiustatud viilutamistehnikate mõistmine võib oluliselt parandada teie võimet Pythonis andmestruktuuridega tõhusalt manipuleerida.
Korduma kippuvad küsimused Pythoni viilutamise kohta
- Kuidas a[x:y:z] töötada?
- See loob indeksist lõigu x juurde y sammuga z.
- Mis teeb a[:] teha?
- See tagastab kogu loendi koopia.
- Kuidas valida loendist iga teine element?
- Kasuta a[::2] iga teise elemendi valimiseks.
- Kuidas asendada loendis elemente viilude abil?
- Kasuta a[start:end] = [new_elements] konkreetsete elementide asendamiseks.
- Mis on viilutamise ülemine ainuõigus?
- See tähendab, et lõpp-indeks ei sisaldu osas.
- Kas ma saan kasutada viiludes negatiivseid indekseid?
- Jah, negatiivsed indeksid võimaldavad teil loendi lõpust välja lõigata.
- Kuidas viilud kahemõõtmeliste loenditega töötavad?
- Ridade ja veergude viiludeks saate kasutada matrix[:2, 1:3].
- Mis teeb a[-3:-1] tagasi?
- See tagastab elemendid alates kolmandast kuni viimaseni.
- Kuidas saan loendit viilude abil ümber pöörata?
- Kasutage a[::-1] nimekirja tagasipööramiseks.
Pythoni viilutähiste kokkuvõte
Kokkuvõtteks võib öelda, et Pythoni viilutähiste valdamine avab mitmesugused võimsad andmetöötlustehnikad. Olenemata sellest, kas pääsete juurde elementidele, loote uusi alamloendeid või muudate olemasoleva loendi osi, on viilutamine puhas ja tõhus viis järjestustega töötamiseks. Võimalus kasutada samme ja negatiivseid indekseid suurendab veelgi selle mitmekülgsust.
Pythoniga töötades avastate, et viilutamise kindel arusaam on hindamatu. See lihtsustab paljusid ülesandeid, muutes teie koodi loetavamaks ja kokkuvõtlikumaks. Harjutage erinevate viilutamistehnikate kasutamist, et omandada selles Pythoni programmeerimise olulises aspektis vilumus.