Een lijst (Eng.: list) in Python (in vele andere programmeertalen een array genoemd) is een reeks van meerdere variabelen met een naam. In plaats van een programma te schrijven met vele variabelen x0
, x1
, x2
, … kun je een variabele x
definiëren en de elementen ervan weergeven door middel van x[0]
, x[1]
, x[2]
, enz. Belangrijker, je kunt uitdrukkingen en variabelen tussen de rechte haken zetten, zoals x[i]
en x[i+1]
. Dit stelt ons in staat met willekeurig grote verzamelingen data te werken terwijl we er slechts een klein stukje code voor nodig hebben.
Eén manier om een lijst te creëren die een gegeven reeks van waarden bevat, is door de verschillende waarden tussen rechte haken te zetten, gescheiden door een komma:
myList = ["de eerste waarde van de lijst", 1999, 4.5]Dit creëert een lijst van lengte 3, en kent een verwijzing naar de lijst toe aan variable
myList
. Ieder element van de lijst heeft een rangnummer, index genaamd: het eerste element heeft index 0, het volgende element index 1, enzovoort. De individuele variabelen die de lijst vormen hebben als naam
«listName»[«indexNumber»]
Zo is in het voorbeeld myList[0]
een variabele met waarde "de eerste waarde van de lijst"
en print(myList[2])
zal 4.5
afdrukken. Je kunt ook de hele lijst printen:
Zoals je kunt zien, wordt numbers[0]
behandeld alsof het een variabele is: je kunt de waarde op die index wijzigen.
Probeer te voorspellen wat de inhoud van mijnLijst
is na uitvoering van het volgende programma. Voer het programma vervolgens stap voor stap uit.
stuff = [2, 25, 80, 12]
stuff[stuff[0]] = stuff[3]
print(stuff)
stuff[3]
aan de rechterkant is 12
. Aan de linkerkant is stuff[0]
gelijk aan 2
, dus is stuff[stuff[0]]
hetzelfde als de variabele stuff[2]
. De waarde van deze variabele is veranderd (van 80
) in 12
.Wat in Python een lijst wordt genoemd wordt in de meeste andere programmeertalen een array genoemd. |
Een gebruikelijke fout
Wanneer je in Python naar een index vraagt die niet bestaat, krijg je een foutmelding:
Omdat in bovenstaand voorbeeld myList
lengte 4 heeft en de eerste index 0 is, en de grootst mogelijke index 3 is. Vragen naar een element met index van 4, 5, of nog groter heeft deze foutmelding tot gevolg.
Nuttige operaties
De lengte van een lijst: len(«list»)
Om het aantal elementen in een lijst vast te stellen, kun je de functie len()
toepassen op de lijst. Kijk hoe range
wordt gebruikt in het volgende voorbeeld.
Het is gebruikelijk om len
te gebruiken om te kunnen werken met lijsten van willekeurige lengte, zoals in het voorbeeld hierboven, en in het volgende voorbeeld.
Zijn lijsten hetzelfde als strings?
Je kunt hebben opgemerkt dat de operaties die toepasbaar zijn op lijsten lijken op die welke toepasbaar zijn op strings: beide kunnen als invoer dienen voor de functie len()
, en beide kennen X[«index»]
om individuele elementen te benoemen. Lijsten en strings hebben inderdaad veel gemeenschappelijk: het zijn beiden "rij-types" in Python. Een belangrijk verschil is dat de individuele karakters in strings niet kunnen worden aangepast.
Het is om die reden dat lijsten veranderbaar worden genoemd en strings onveranderbaar; je krijgt hier nog wat meer informatie over in les 17.
Samenvoegen en Creatie
Van de les over het str
-type, zul je je wellicht herinneren dat je +
kunt gebruiken om twee strings samen te voegen (Eng.: concatenate). Hetzelfde kan met lijsten:
Evenzo kun je het symbool *
voor vermenigvuldigen gebruiken om een lijst herhaald uit te breiden. Dit is nuttig om een nieuwe lijst te maken van een gewenste lengte.
Om de volgende opgave te kunnen oplossen gebruik je één van de operatoren die we zojuist hebben geïntroduceerd en een for
-lus.
Einde van de regel: negatieve indices
Voor het laatste element van een lijst gebruik je:
«listName»[-1]
Meer in het algemeen, geeft L[-k]
het kde
element vanaf het einde van de lijst; Python gebruikt dit intern door een vertaling in L[len(L)-k]
. Dit werkt ook voor strings!
max
en sum
De functie max
die we eerder hebben gezien kan ook toegepast worden op een lijst met getallen: het geeft het grootste getal in de lijst terug. Evenzo geeft de functie sum(L)
de som van de elementen van de lijst L
terug.
Een lijst doorlopen
Het is zeer gebruikelijk (zoals in de vorige oefening) om elke waarde van een lijst te doorlopen. Python heeft daarvoor een afkorting waarmee dat kan, meestal een "voor alle"-lus (Eng.: for-each loop) genoemd. Specifiek, wanneer L een lijst is, dan doet
for x in L: «lichaam»het volgende: eerst wordt
x
gelijkgesteld aan de eerste waarde van L
en wordt het lichaam uitgevoerd; daarna wordt x
gelijkgesteld aan de tweede waarde van L
en het lichaam uitgevoerd; dit wordt vervolgd voor alle elementen van L
.
"Voor alle"-lussen werken ook met strings: probeerfor char in "hello"
.
Goed gedaan! je kunt doorgaan naar de volgende les of probeer als bonus enkele van de oefeningen hieronder.
x
zal mystery(x)
oneindig lang voortduren?
def mystery(x):
a = [0, 4, 0, 3, 2]
while x > 0:
x = a[x]
return "Done"