Obvladovanje zapisa rezine Python
Rezanje v Pythonu je zmogljiva funkcija, ki vam omogoča dostop do podnabora elementov s seznama, tuple ali niza. Ne glede na to, ali uporabljate osnovne rezine, kot je [:], ali bolj napredne, kot je [x:y:z], lahko razumevanje delovanja rezin močno izboljša vašo učinkovitost kodiranja.
Ta članek se bo poglobil v mehaniko zapisa rezin v Pythonu, razložil, zakaj so rezine izključne na zgornji meji, prikazal, kako ustvariti nove sezname z vsakim N-tim elementom, in pojasnil, kako delujejo dodelitve z rezinami seznama. Na koncu boste že dobro obvladali rezanje v Pythonu.
Ukaz | Opis |
---|---|
slice = a[::2] | Ustvari nov seznam, ki vsebuje vsak drugi element iz izvirnega seznama a. |
slice = a[::-1] | Obrne seznam a. |
slice = a[1:7:2] | Izvleče elemente od indeksa 1 do 6 s korakom 2. |
slice1 = xs[0:2] | Izvleče elemente od indeksa 0 do 1 s seznama xs. |
nth_list = a[::3] | Ustvari nov seznam, ki vsebuje vsak tretji element iz izvirnega seznama a. |
xs[0:2] = ["a", "b"] | Zamenja elemente pri indeksu 0 in 1 v xs z "a" in "b". |
print(slice) | Izpiše vsebino rezine spremenljivke na konzolo. |
Raziskovanje zapisa rezine Python
Zgoraj navedeni skripti prikazujejo različne načine uporabe Pythonovega zapisa rezin za učinkovito manipuliranje s seznami. Prva skripta prikazuje osnovno rezanje, kjer ustvarimo podnabore seznama a z uporabo različnih zapisov rezin. na primer a[2:5] izloči elemente od indeksa 2 do 4, medtem ko a[:3] dobi prve tri elemente. The a[::2] sintaksa izvleče vsak drugi element s seznama in a[::-1] obrne seznam. Te tehnike rezanja omogočajo prilagodljivo ekstrakcijo podatkov in manipulacijo, kar olajša delo s podnabori podatkov brez spreminjanja prvotnega seznama.
Drugi scenarij pojasnjuje koncept ekskluzivnosti zgornje meje pri rezanju. notri xs[0:2], sta vključena elementa z indeksoma 0 in 1, vendar je indeks 2 izključen. To vedenje je skladno s Pythonovim indeksiranjem na osnovi ničle in pomaga preprečevati napake, ki se pojavljajo enkrat za eno. Tretji skript ustvari nov seznam z vsakim N-tim elementom iz prvotnega seznama z uporabo a[::3], ki prikazuje, kako se lahko rezanje uporablja za vzorčenje ali preskakovanje elementov. Četrti skript prikazuje, kako dodeliti nove vrednosti določenim rezinam seznama. Z uporabo xs[0:2] = ["a", "b"], se elementa pri indeksu 0 in 1 nadomestita z "a" in "b". Ta zmožnost dodeljevanja vrednosti rezinam olajša učinkovito spreminjanje delov seznama.
Kako delati s Pythonovo notacijo rezine
Primeri rezanja v Pythonu
# 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)
Razumevanje ekskluzivnosti zgornje meje v rezinah Python
Razlaga zgornje meje rezine Python
# 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]
Ustvarjanje novega seznama z vsakim N-tim elementom
Rezanje seznama Python za N-te elemente
# 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)
Dodeljevanje vrednosti z rezinami seznama
Dodelitev rezine Python
# Assignment with list slices
xs = [10, 20, 30, 40, 50]
xs[0:2] = ["a", "b"] # xs becomes ['a', 'b', 30, 40, 50]
print(xs)
Potopite se globlje v Python Slice Notation
Poleg osnovnega rezanja je Pythonovo notacijo rezin mogoče uporabiti na naprednejše načine za obravnavanje različnih nalog manipulacije s podatki. Eden močnih vidikov je negativno indeksiranje, ki vam omogoča, da izrezujete s konca seznama. Na primer, a[-3:] pridobi zadnje tri elemente seznama a. To je lahko izjemno uporabno za dostop do elementov na koncu seznama, ne da bi vedeli njegovo dolžino. Druga napredna funkcija je združevanje rezin z drugimi operacijami seznama, kot sta razvrščanje ali filtriranje. Del seznama lahko razvrstite z uporabo sorted(a[2:5]), ki vrne razvrščeno različico elementov od indeksa 2 do 4 brez spreminjanja izvirnega seznama.
Poleg tega se lahko rezanje uporablja z večdimenzionalnimi seznami ali seznami seznamov. Če imate na primer 2D seznam, lahko ločeno razrežete vrstice in stolpce. Uporaba matrix[:2] dobi prvi dve vrstici, medtem ko [row[:2] for row in matrix] pridobi prva dva stolpca vsake vrstice. Razumevanje teh naprednih tehnik rezanja lahko znatno poveča vašo sposobnost učinkovitega manipuliranja kompleksnih podatkovnih struktur. Pythonova notacija rezin ni samo orodje za dostop do delov seznama, ampak tudi zmogljiva funkcija za analizo podatkov in manipulacijo.
Pogosta vprašanja in odgovori o zapisu rezine Python
- Kakšna je sintaksa za osnovno rezanje v Pythonu?
- Osnovna sintaksa rezanja je a[start:stop:step], kje start je začetni indeks, stop je končni indeks (izključno) in step določa prirastek med indeksi.
- Kako obrnete seznam z uporabo rezanja?
- Seznam lahko obrnete z zapisom rezine a[::-1].
- Kako dostopate do zadnjega elementa seznama?
- Do zadnjega elementa seznama lahko dostopate z uporabo a[-1].
- Kaj počne a[:3] vrnitev?
- Vrne prve tri elemente seznama a.
- Ali lahko spremenite elemente na seznamu z rezanjem?
- Da, rezinam lahko dodelite nove vrednosti, kot npr a[0:2] = [9, 8], ki prva dva elementa nadomesti z 9 in 8.
- Kako razrežete seznam, da dobite vsak drugi element?
- Z uporabo lahko dobite vsak drugi element a[::2].
- Kaj se zgodi, če izpustite začetni indeks v rezini?
- Če je začetni indeks izpuščen, se rezina začne od začetka seznama, kot v a[:3].
- Kako razrežete 2D seznam, da dobite določene stolpce?
- Stolpce na 2D seznamu lahko razrežete z razumevanjem seznama, na primer [row[:2] for row in matrix] da dobimo prva dva stolpca.
- Kaj pomeni negativno indeksiranje v rezinah?
- Negativno indeksiranje pomeni štetje od konca seznama, torej a[-3:] dobi zadnje tri elemente.
Končne misli o rezanju v Pythonu
Pythonova notacija rezin je vsestransko orodje, ki poenostavlja naloge obdelave podatkov. Ne glede na to, ali obračate seznam, ekstrahirate določene elemente ali spreminjate vsebino seznama, so z rezanjem te operacije enostavne in učinkovite. Razumevanje odtenkov rezanja, vključno z naprednimi tehnikami, kot sta negativno indeksiranje in večdimenzionalno rezanje, lahko močno izboljša vaše programerske sposobnosti in učinkovitost.