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.
123s = "python" print(s[0]) # 'p' (first character) print(s[5]) # 'n' (sixth character)
Negatiiviset indeksit laskevat lopusta päin.
123s = "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.
12s = "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.
12s = "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).
12345s = "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ä).
12s = "python" print(s[0:100]) # 'python'
Negatiiviset indeksit ja kääntäminen
Negatiivisia indeksejä voi yhdistellä viipaleisiin, ja negatiivinen step kulkee taaksepäin.
123s = "python" print(s[-3:]) # 'hon' (last three) print(s[::-1]) # 'nohtyp' (reverse)
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"?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme