Loendid
Eelmine
Järgmine

Loendid

Pythonis on mitmeid andmetüüpe, mis võimaldavad väärtusi grupeerida. Loend esitatakse komaga eraldatud väärtustena, mis on ümbritsetud nurksulgudega. Kõik loendi liikmed ei pea olema samast tüübist.

>>> a = ['spam', 'eggs', 100, 1234]
>>> a
['spam', 'eggs', 100, 1234]

Nii nagu stringi indeksid, algavad ka loendi indeksid nullist. Negatiivse indeksi korral alustatakse lugemist tagant ettepoole [1] viimane element on indeksiga -1. Loendeid on võimalik nii lõigata kui jätkata:

>>> a[0]
'spam'
>>> a[3]
1234
>>> a[-2]
100
>>> a[1:-1]
['eggs', 100]
>>> a[:2] + ['bacon', 2*2]
['spam', 'eggs', 'bacon', 4]
>>> 3*a[:3] + ['Boo!']
['spam', 'eggs', 100, 'spam', 'eggs', 100, 'spam', 'eggs', 100, 'Boo!']

Erinevalt stringidest, mis on muutmatud objektid, on loendi elemente võimalik muuta kohapeal:

>>> a
['spam', 'eggs', 100, 1234]
>>> a[2] = a[2] + 23
>>> a
['spam', 'eggs', 123, 1234]

Loendi lõikudele on võimalik omistada väärtusi, nii võib isegi loendi suurust muuta:

>>> # Asendame mõned elemendid:
... a[0:2] = [1, 12]
>>> a
[1, 12, 123, 1234]
>>> # Kustutame:
... a[0:2] = []
>>> a
[123, 1234]
>>> # Lisame juurde:
... a[1:1] = ['bletch', 'xyzzy']
>>> a
[123, 'bletch', 'xyzzy', 1234]
>>> a[:0] = a     # Lisame iseenda koopia algusesse:
>>> a
[123, 'bletch', 'xyzzy', 1234, 123, 'bletch', 'xyzzy', 1234]

Sisseehitatud funktsioon len() on kohaldatav ka loendidele:

>>> len(a)
8

Loendid võivad üksteises sisalduda:

>>> q = [2, 3]
>>> p = [1, q, 4]
>>> len(p)
3
>>> p[1]
[2, 3]
>>> p[1][0]
2
>>> p[1].append('xtra')    
>>> p
[1, [2, 3, 'xtra'], 4]
>>> q
[2, 3, 'xtra']

Tabel 3.4. Tehted loenditega

Tehe Seletus Märkused
s[i] = x si element i asendatakse xga 
s[i:j] = t si lõik ist jni asendatakse tga 
del s[i:j]sama mis s[i:j] = [] 
s[i:j:k] = telemendid s[i:j:k] asendatakse t omadega(1), (8)
del s[i:j:k]eemaldabs[i:j:k] loendist(8)
s.append(x)sama mis s[len(s):len(s)] = [x] 
s.extend(x)sama mis s[len(s):len(s)] = x(2)
s.count(x)tagastab ide arvu, mille kohta kehtib s[i] == x 
s.index(x[, i[, j]])tagastab vähima k nii, et s[k] == x ja i <= k < j(3)
s.insert(i, x)sama mis s[i:i] = [x](4)
s.pop([i])sama mis x = s[i]; del s[i]; return x(5)
s.remove(x)sama mis del s[s.index(x)](3)
s.reverse()pöörab si elementide järjekorra kohapeal ringi(6)
s.sort([cmp[, key[, reverse]]])sorteerib si elemendid kohapeal(6), (7)

Märkus

  1. t peab olema sama pikkusega kui asendatav lõik

  2. x võib olla suvaline loendatav objekt

  3. Annab veateate, kui x ei leidu sis. Kui teise või kolmanda parameetrina antakse negatiivne indeks, siis lisatakse loendi pikkus, nagu lõikude korral. Kui see jääb ikka negatiivseks, siis kärbitakse ta nullini, nagu lõikude korral.

  4. Kui esimese parameetrina antakse negatiivne indeks, siis lisatakse loendi pikkus, nagu lõikude korral. Kui see jääb ikka negatiivseks, siis kärbitakse ta nullini, nagu lõikude korral.

  5. Suvand i on vaikimisi -1. Seega eemaldatakse ja tagastatakse loendist vaikimisi viimane element.

  6. sort() ja reverse() muudavad listi kohapeal ega tagasta midagi.

  7. Meetodi sort() suvandeid käesolevas kursuses ei käsitleta.

  8. Alates ist kuni jni k kaupa



Täpsemalt öeldes lisatakse negatiivsele indeksile loendi pikkus
Eelmine
Järgmine
Esileht