web2 logo

Python Lists

Lists in Python zijn wat in andere programmeertalen vaak arrays worden genoemd. Lists kunnen verschillende datatypes tegelijk bevatten. Een List kan ook Lists bevatten. De elementen in een List hoeven niet uniek te zijn, meerdere dezelfde elementen mag dus.
Meerdere variabelen kunnen verwijzen naar dezelfde list, deze lijst aanpassen, past hem dan aan voor alle variabelen die verwijzen naar deze list!
Als je niet wilt dat 2 variabelen naar dezelfde list verwijzen, maar een list wilt klonen, dan kan dat ook:
mijnkloon = mijnlist[:]

Een List maken

Een List maak je door een variabele te maken waarvan de waarde tussen vierkante haken staat, dit mag ook een lege list zijn.

mijn_list = []

Als je al een aantal waarden weet die je in de List wil hebbben, dan kun je een List maken met die waarden er al in.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']

De fruitnamen zijn Strings, zij staan daarom tussen aanhalingstekens. Het maakt hier niet uit of dit enkele of dubbele aanhalingstekens zijn. Als dit een List zou zijn met Integers of Floats, dan zouden er geen aanhalingstekens staan. De elementen in een List worden gescheiden door komma's.

Navigeren door een List

Ieder element in een List heeft een index, we beginnen met tellen bij nul, het eerste element heeft dus een index van nul.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
print(fruit[0])

Het bovenstaande voorbeeld geeft: "Appels", omdat dit het eerste element in de List is en dus een index heeft van nul.
Nog een voorbeeld:

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
print(fruit[3])

Je krijgt dan: "Druiven".
Je kunt ook negatieve indexen gebruiken om achteruit te tellen:

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
print(fruit[-2])

Je krijgt nu "Bessen", want Appels is nul, Citroenen is min 1 en Bessen is dan min 2.
Ieder element in een List heeft dus 2 indexen, een positieve en een negatieve.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
print(fruit[0])
print(fruit[-7])

Het resultaat ven beide is "Appels".

Lists knippen

Het knippen van Lists lijkt op het knippen van Strings. Je geeft een begin index en een eind index aan.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
fruit_lijst = fruit[:2]
print(fruit_lijst)

Je kunt ook een gedeelte uit het midden van een List halen:

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
fruitmand = fruit[2:4]
print(fruitmand)

Ook hier kun je weer achteruit tellen met negatieve indexen:

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
fruitmand = fruit[-5:-3]
print(fruitmand)

De lengte van een List

De len() methode kan gebruikt worden om de lengte van een List te bepalen.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
print(len(fruit))

De len() methode geeft het aantal elementen in een List, dit is dus 1 meer dan de index van het laatste element.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
print(fruit[len(fruit) - 1])

De -1 is hier nodig omdat de index bij nul begint te tellen.

Een element aan een List toevoegen met append()

Met de methode append() kun je een element aan een array toevoegen.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
fruit.append("Sinaasappels")
print(fruit)

Aan het einde van de List staat nu "Sinaasappels".

Een element verwijderen uit een List met pop()

Met de pop() methode kun je elementen verwijderen uit een List. Als je niets tussen de haakjes zet, dan werkt pop() tegenovergesteld aan append().

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
fruit.pop()
print(fruit)

Na deze pop() is "Citroenen" van de List verwijderd.
Als je niet het laatste element wilt verwijderen, maar een eerder element, dan moet je de index van dat element weten, die moet dan tussen de haakjes komen te staan.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
fruit.pop(4)
print(fruit)

Nu is "Aardbeien" uit de List.

Een element aan een List toevoegen met insert()

Met de methode insert() moet je de index aangeven waar je het nieuwe element in de List wil plaatsen.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
fruit.insert(2, "Sinaasappels")
print(fruit)

"Sinaasappels" wordt nu het element met index 2 en duwt de andere elementen een plaats verder.

print(fruit[4])

"Druiven" heeft nu index 4 omdat "Sinaasappels" de plaats van "Bananen" op index 2 heeft overgenomen, "Bananen" heeft nu index 3 en daarom heeft "Druiven" nu index 4.

Een element verwijderen uit een List met remove()

Met de methode remove() kun je een element verwijderen zonder dat je de index weet. Aan remove() geef je de waarde van het element dat je wilt verwijderen. Het eerste element dat die waarde heeft wordt dan verwijderd uit de List.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
fruit.remove("Bessen")
print(fruit)

"Bessen" is nu weg uit de List en "Citroenen" is een plaats teruggeschoven.

Een List aan een List toevoegen met extend()

De List die tussen haakjes staat wordt toegevoegd aan de List waar de methode extend() op wordt gebruikt.

fruit = ['Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
fruit_lijst = ['Appels', 'Peren', 'Sinaasappels']
fruit.extend(fruit_lijst)
print(fruit)

De elementen van de List fruit_lijst zijn toegevoegd aan het einde van de List fruit.

De index van een element in een list vinden

Om een index van een element in een List te vinden kun je de methode index() gebruiken. Deze methode vindt het eerste element met een bepaalde waarde.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
print(fruit.index("Bessen"))

Dit geeft het indexnummer van het element.

Een List sorteren met sort()

De methode sort() kan gebruikt worden om alfabetisch of numeriek te sorteren. De oorspronkelijke List wordt dan overschreven met de gesorteerde List, als je dat niet wil, dan moet je eerst een kopie van de List maken.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
fruit.sort()
print(fruit)

De de elementen van de List fruit staan nu in alfabetische volgorde.
Je kunt getallen ook numeriek sorteren.

te_sorteren_getallen = [1, 5, 8, 16, 3, 75, 4, 23, 9, 15, 8, 32]
te_sorteren_getallen.sort()
print(te_sorteren_getallen)

Een List omdraaien met reverse()

De methode reverse() draait de volgorde van de elementen in een List om.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
fruit.reverse()
print(fruit)

Om de elemente in een List in omgekeerde alfabetische volgorde te zetten, kun je beide methoden er op los laten.

fruit = ['Appels', 'Peren', 'Bananen', 'Druiven', 'Aardbeien', 'Bessen', 'Citroenen']
fruit.sort()
fruit.reverse()
print(fruit)

Lists met meerdere dimensies

Lists kunnen niet alleen gebruikt worden om gegevens op te slaan, maar ook om ze te categoriseren. Waarden in een List kunnen verder worden verdeeld in sets, dat is waarvoor je een multidimensionale List gebruikt. Een List die zelf weer Lists bevat, is dus een multidimensionale list.
Als eerste voorbeeld een List die 3 Lists bevat, deze lists bevatten elk 5 weer elementen.

nummer_reeks = [[2, 4, 6, 8, 10], [3, 6, 9, 12, 15], [4, 8, 12, 16, 20]]
print(nummer_reeks[1])

Het resultaat:

[3, 6, 9, 12, 15]

De tweede List met getallen worden nu getoond. Als je de individuele elementen uit zo'n List in een List wil hebben, dan moet je extra vierkante haken gebruiken. De eerste vierkante haken zijn voor het hoogste niveau dat je specificeert. De volgende vierkante haken geven dan de index aan van het element in de sub-List. In dit voorbeeld is dat het getal 4:

nummer_reeks = [[2, 4, 6, 8, 10], [3, 6, 9, 12, 15], [4, 8, 12, 16, 20]]
print(nummer_reeks[0][1])

Multidimensionale List gedragen zich hetzelfde als enkelvoudige Lists.
Meer als 2 dimensies is ook mogelijk. In feite kun je zoveel dimensies maken als je wilt, het wordt na een aantal dimensies dan wel wat onoverzichtelijk.

nummer_reeks = [[[1, 2, 3, 4],[5, 6, 7, 8,],[9, 10, 11, 12],], [[13, 14, 15, 16],[17, 18, 19, 20],[21, 22, 23, 24]], [[25, 26, 27, 28], [29, 30, 31, 32], [33, 34, 35, 36]]]
print(nummer_reeks[0][1][2])

Het resultaat hiervan is 7.
Bovenstaande is een voorbeeld van een 3 dimensionale List. Hier nog een voorbeeld:

nummer_reeks = [[[[1, 2],[3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], [[[13, 14], [15, 16]], [[17, 18], [19, 20]], [[21, 22], [23, 24]]], [[[25, 26], [27, 28]], [[29, 30], [31, 32]], [[33, 34], [35, 36]]]]
print(nummer_reeks[0][1][1][1])

Het resultaat hiervan is 8.
De methoden die je op enkelvoudige Lists kunt loslaten, werken ook met multidimensionale Lists.

nummer_reeks = [[2, 4, 6, 8, 10], [3, 6, 9, 12, 15], [4, 8, 12, 16, 20]]
nummer_reeks.append([5, 10, 15, 20, 25])
print(nummer_reeks)

Het resultaat:

[[2, 4, 6, 8, 10], [3, 6, 9, 12, 15], [4, 8, 12, 16, 20], [5, 10, 15, 20, 25]]

De extra List is nu toegevoegd aan de Lists in de list.
Methoden kun je ook gebruiken met elementen uit de List.

nummer_reeks = [[2, 4, 6, 8, 10], [3, 6, 9, 12, 15], [4, 8, 12, 16, 20]]
nummer_reeks[1].pop(3)
print(nummer_reeks)

Het getal 12 uit de tweede List in nummer_reeks is nu verwijderd.
Je kunt ook weer methoden combineren op elementen in Lists.

nummer_reeks = [[2, 4, 6, 8, 10], [3, 6, 9, 12, 15], [4, 8, 12, 16, 20]]
nummer_reeks[2].reverse()
nummer_reeks[1].append(18)
nummer_reeks[0].extend([12, 14, 16, 18])
print(nummer_reeks)

Het resultaat:

[[2, 4, 6, 8, 10, 12, 14, 16, 18], [3, 6, 9, 12, 15, 18], [20, 16, 12, 8, 4]]

Een list omzetten naar een string

Een list met strings kan je omzetten naar een enkele string met .join:

list1 = ['1', '2', '3']
str1 = ''.join(list1)

Als er numerieke waarden in de list staan, dan moeten die eerst worden omgezet naar strings:

list1 = [1, 2, 3]
str1 = ''.join(str(e) for e in list1)

dit geeft '123'
Je kunt er ook komma's tussen plaatsen:

list1 = [1, 2, 3]
str1 = ','.join(str(e) for e in list1)

Dit geeft: '1,2,3'

Meervoudige toewijzing

Met een list kan je ook meerdere variabelen in 1 keer toewijzen:
In plaats van: auto = ['peugeot','benzine','automaat'] merk = auto[0] brandstof = auto[1] transmissie = auto[2]
Kan je dit gebruiken: auto = ['peugeot','benzine','automaat'] merk, brandstof, transmissie = auto

Toegevoegd door: Kees de Keijzer
Twitter: @kdkq

~ python ~

~ Onderwerpen ~

Dit is een website zonder pop-ups

~ Links ~

Design & Development by Cyberwebdesign.nl for web2.nl © 2020.