Lajittelualgoritmit

Lista merkitään Pythonissa hakasuluilla alkiot pilkulla erotettuna. Listan alkioihin viitataan indekseillä. Indeksointi alkaa nollasta.

lista = [3, 7, 8, 11]

print(lista[0]) # tulostaa 3
print(lista[1]) # tulostaa 7
print(lista[-2]) # tulostaa 8
print(lista[4]) # IndexError

Alkioiden korvaaminen, lisääminen ja poistaminen:

lista = [3, 7, 8, 7, 11]
print(lista)

# Vaihdetaan ensimmäinen alkio 4:ksi
lista[0] = 4
print(lista) # Tulostaa [4, 7, 8, 7, 11]

# Lisätään 12 listan perään
lista.append(12)
print(lista) # Tulostaa [4, 7, 8, 7, 11, 12]

# Poistetaan listasta luvun 7 ensimmäinen esiintymä
lista.remove(7)
print(lista) # Tulostaa [4, 8, 7, 11, 12]

# Poistetaan listan alkio, jonka indeksi on 1 (eli toinen alkio)
lista.pop(1) # Palauttaa arvon 8
print(lista) # Tulostaa [4, 7, 11, 12]
lista = [4, 2, 6, 3, 1, 12]
n = len(lista) 
print(n) # tulostaa 6
print(lista[n-1]) # tulostaa viimeisen alkion 12 

Listan pituuden saa komennolla len(lista).
Huomaa, että koska indeksointi aloitetaan nollasta, viimeisen alkion indeksi on pituutta yhtä pienempi

Listan läpikäynti

lista = [1, 3, 6, 7, 3, 2]

# Tapa 1
for alkio in lista:
  print(alkio)
# tulostus: 1, 3, 6, 7, 3, 2

# Tapa 2 (hyvä, jos taulukkoa pitää muokata)
for i in range(len(lista)):
  lista[i] = lista[i] + 1
print(lista) # tulostaa [2, 4, 7, 8, 4, 3]

Lista voidaan järjestää monella tapaa.
Toiset tavoista on tehokkaampia kuin toiset.

lista = [5, 3, 1, 2, 4]

# Oletetaan, että alussa lista on epäjärjestyksessä
jarjestyksessa = False

while not jarjestyksessa:
    # Toivotaan, että saadaan tällä kertaa järjestykseen
    jarjestyksessa = True
    for i in range(len(lista)-1):
        if(lista[i] > lista[i+1]):
            # Ei ole järjestyksessä!
            jarjestyksessa = False
            # Vaihdetaan järjestys pareittain
            apu = lista[i+1]
            lista[i+1] = lista[i]
            lista[i] = apu

print(lista) # [1, 2, 3, 4, 5]

Bubble sort

Pythonissa on myös sisäänrakennettu lajittelufunktio

lista = [3, 4, 2, 1]
lista.sort()
print(lista) # tulostaa [1, 2, 3, 4]