Lijsten

In Python definieer je een lijst door waarden tussen [ ] te plaatsen, gescheiden door komma's.

getallen = [ 2, 3, 5, 7, 11 ]
fruit = ["appel", "banaan", "citroen"]
gemengde_lijst = [ 1, "appel", 3.14 ]

range( .. )

Je hebt reeds bij het deel over de for-lus de functie range( .. ) gebruikt.
Eigenlijk maak je hier een lijst aan.

test = range(5) #Maakt een lijst aan van 0 tot 5 (5 niet inbegrepen)
print test
tost = range(7, 11) #Maakt een lijst van 7 tot 11 (11 niet inbegrepen)
print tost

Merk op dat we in de informatica niet vanaf 1 maar vanaf 0 beginnen tellen.

len( .. )

Om te berekenen hoe lang een lijst is, gebruik je de functie len( .. )

getallen = [ 2, 3, 5, 7, 11 ]
fruit = ["appel", "banaan", "citroen"]
gemengde_lijst = [ 1, "appel", 3.14 ]
print len(getallen) #Resultaat: 5
print len(fruit) #Resultaat: 3
print len(gemengde_lijst) #Resultaat: 3

for var in lijst:

Een for-lus hoeft niet per se te lopen over een range( .. ), maar kan over eender welke lijst lopen.

fruit = ["appel", "banaan", "citroen"]
for woord in fruit:
    print woord

Geeft als resultaat:

"appel"
"banaan"
"citroen"

Waarde opvragen uit een lijst

Om een waarde uit een lijst op te vragen, doe je het volgende.

fruit = ["appel", "banaan", "citroen"]
print fruit[0] #Resultaat: "appel"
print fruit[2] #Resultaat: "citroen"

Merk op dat de "eerste" waarde in de lijst, eigenlijk de nulde waarde is.

Je kan ook negatieve waarden meegeven. De laatste waarde in de lijst vraag je bijvoorbeeld als volgt op:

fruit = ["appel", "banaan", "citroen"]
print fruit[-1] #Resultaat: "citroen"

Waarden aan een lijst toevoegen

Met de .append( .. )-operator kun je een waarde aan een lijst toevoegen.

fruit = ["appel", "banaan", "citroen"]
fruit.append("druif")
print fruit #Resultaat: ["appel", "banaan", "citroen", "druif"]

Slice

Je maakt een slice als je een stukje van een taart snijdt, of dus in dit geval, een stukje van een lijst.
Bij het maken van een slice is : van belang. lijst[a:b] geeft alle waarden vanaf index a tot index b.

fruit = ["appel", "banaan", "citroen", "druif", "elstarappel", "framboos", "granaatappel", "honingmeloen"]
print fruit[2:4] #Resultaat: ["citroen", "druif"]
print fruit[1:5] #Resultaat: ['banaan', 'citroen', 'druif', 'elstarappel']
print fruit[:3] #Resultaat: ['appel', 'banaan', 'citroen']
print fruit[3:] #Resultaat: ['druif', 'elstarappel', 'framboos', 'granaatappel', 'honingmeloen']

Lees fruit[:3] als "alles tot index 3" of "de eerste 3 waarden".
Lees fruit[3:] als "alles vanaf index 3".

Map

Als je een functie wil toepassen op een hele lijst, dan gebruik je map.
In volgend voorbeeld verdubbelen we de waarden in een lijst

def dubbel(x):
    return 2 * x
lijst = range(10) #Dus [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print map(dubbel, lijst) #Resultaat: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

Filter

Als je waarden uit een lijst wil filteren, dan gebruik je filter.
In volgend voorbeeld filteren we de even getallen uit een lijst.

def is_even(x):
    return x % 2 == 0 #Zie Basisbegrippen:Oefeningen
lijst = range(10) #Dus [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print filter(is_even, lijst) #Resultaat: [0, 2, 4, 6, 8]

Reduce

Als je een functie op alle waarden uit een lijst wil toepassen, met een nieuwe waarde als resultaat, dan gebruik je reduce
Je wil bijvoorbeeld alle getallen uit een lijst optellen en de resulterende som tonen.

def som(a,b):
    return a + b
lijst = range(10) #Dus [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print reduce(som, lijst) #Resultaat: 45