Lists en unpacking

We leerden reeds ints, floats en strings gebruiken om data voor te stellen. Het is héél vaak nuttig om meerdere gegevens samen bij te houden. Lists (lijsten van data) zijn een simpele manier om dit te doen.

We kunnen in Python een list declareren door onze gegevens tussen vierkante haken te plaatsen, gescheiden door komma’s:

priemgetallen = [2, 3, 5, 7, 11]
dobbelsteen = [1, 2, 3, 4, 5, 6]
namen = ["August", "Eva", "Emiel", "Zarah", "Lara", "Noor"]

De 3 variabelen priemgetallen, dobbelsteen en namen kunnen dan doorheen het programma gebruikt worden.

Indexing: een element selecteren

Lijsten zijn verzamelingen waarbij de elementen in een vaste volgorde staan. Dergelijke geordende verzamelingen zijn in Python altijd geïndexeerd. Dit betekent dat je een element uit de lijst kan oproepen via de index.

namen = ["August", "Eva", "Emiel", "Zarah", "Lara", "Noor"]
index:      0        1       2        3       4       5

Merk op dat men voor de indexering begint te tellen vanaf 0. Het 0-de element van de lijst is dus "August", het vijfde is "Noor".

Via de index kunnen we elementen uit de lijst selecteren:

namen = ["August", "Eva", "Emiel", "Zarah", "Lara", "Noor"]
print(namen[0])
print(namen[3])

"August"

"Zarah"

We kunnen deze ook opslaan in een variabele en al dan niet later gebruiken:

dobbelsteen = [1, 2, 3, 4, 5, 6]
worp1 = dobbelsteen[2]
worp2 = dobbelsteen[4]
print(worp1)
print(worp1 + worp2)

3

8

Strings en indexing

Een string is net als een list een geordende verzameling, en is dus ook op net dezelfde manier geïndexeerd.

boodschap = "Informaticawetenschappen is leuk!"
print(boodschap[2])

'f'

Unpacking

Een truuc die voor deze module handig is heet ‘unpacking’. Je kan de elementen van een lijst in 1x elk in hun eigen variabele steken. Een voorbeeld legt dit het beste uit.

Stel dat je punten in 3D als lijsten voorstelt, dan kan je via unpacking de x, y en z component apart uithalen:

x, y, z = [1, 2, -4]
print(y)

2

Voorbeeld: rico berekenen.

# Functie die de rico van de rechte door P en Q teruggeeft.
def rico(P, Q):
    x1, y1 = P
    x2, y2 = Q
    return (y2 - y1) / (x2 - x1)

A = [0, 0]
B = [5, 5]
C = [0, 5]
D = [1, 2]

print(rico(A, B))
print(rico(B, C))
print(rico(B, D))

1.0

-0.0

0.75