Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Indeksointi ja viipalointi | Merkkijonot
Tietotyypit Pythonissa

Indeksointi ja viipalointi

Pyyhkäise näyttääksesi valikon

Merkkijonot ovat jonoja: jokaisella merkillä on sijainti (indeksi). Python käyttää nollapohjaista indeksointia, joten ensimmäinen merkki on indeksissä 0. Yksittäisiä merkkejä saa indeksoimalla ja merkkijonon osia viipaloinnilla.

Indeksointi

Käytä hakasulkeita ja yksittäistä sijaintia.

123
s = "python" print(s[0]) # 'p' (first character) print(s[5]) # 'n' (sixth character)

Negatiiviset indeksit laskevat lopusta päin.

123
s = "python" print(s[-1]) # 'n' (last character) print(s[-2]) # 'o' (second from the end)

Indeksoinnin on osuttava olemassa olevaan sijaintiin, muuten saat IndexError-virheen.

12
s = "python" print(s[10]) # IndexError: string index out of range

Merkkijonot ovat myös muuttumattomia (immutable), joten voit lukea s[i], mutta et voi sijoittaa siihen arvoa.

12
s = "python" s[0] = 'P' # TypeError: 'str' object does not support item assignment

Viipalointi

Viipaloinnissa käytetään start:stop:step ja se palauttaa uuden merkkijonon. stop on eksklusiivinen (ei sisälly mukaan).

12345
s = "python" print(s[1:4]) # 'yth' (indices 1,2,3) print(s[:4]) # 'pyth' (start defaults to 0) print(s[3:]) # 'hon' (stop defaults to len(s)) print(s[::2]) # 'pto' (every 2nd character)

Viipaleet ovat sallivia: jos rajat ylitetään, viipale rajataan kelvollisiin rajoihin (ei virhettä).

12
s = "python" print(s[0:100]) # 'python'

Negatiiviset indeksit ja kääntäminen

Negatiivisia indeksejä voi yhdistellä viipaleisiin, ja negatiivinen step kulkee taaksepäin.

123
s = "python" print(s[-3:]) # 'hon' (last three) print(s[::-1]) # 'nohtyp' (reverse)
Note
Huomio

step ei voi olla 0. Jos step jätetään pois, se tarkoittaa 1. Jos start tai stop jätetään pois, se tarkoittaa "alusta" / "loppuun".

1. Mikä arvo tulostuu tästä koodista?

2. Mikä arvo tulostuu tästä koodista?

3. Mikä lause aiheuttaa virheen kun u = "hello"?

question mark

Mikä arvo tulostuu tästä koodista?

Valitse oikea vastaus

question mark

Mikä arvo tulostuu tästä koodista?

Valitse oikea vastaus

question mark

Mikä lause aiheuttaa virheen kun u = "hello"?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 3. Luku 2
some-alt