Direct naar de hoofdinhoud
Module 3 · Les 1 van 49/36 in de cursus~12 min
Modulelessen (1/4)

Lijsten

Een lijst is een geordende en veranderlijke reeks elementen. Het is de meest gebruikte datastructuur in Python: je maakt er een met [] en past deze aan met een reeks methoden die het waard zijn om te onthouden.

Een lijst maken

Python
vuota = []
numeri = [10, 20, 30]
mista = [1, "due", 3.0, True, None]    # tipi diversi: legale ma raro

Toegang per index en segment

Indexen beginnen bij 0. Negatieve indexen tellen vanaf rechts:

Python
parole = ["a", "b", "c", "d"]
parole[0]    # 'a'
parole[-1]   # 'd'   (ultimo)
parole[1:3]  # ['b', 'c']   slice [start:stop]
parole[::-1] # ['d', 'c', 'b', 'a']   reverse

Een segment verhoogt nooit IndexError: als het buiten bereik is, retourneert het een lege sublijst. Directe toegang zoals parole[10] levert in plaats daarvan een uitzondering.

Een lijst wijzigen

Python
nums = [1, 2, 3]
nums.append(4)         # [1, 2, 3, 4]    aggiunge in fondo
nums.insert(0, 0)      # [0, 1, 2, 3, 4] inserisce in posizione
nums.extend([5, 6])    # [0, 1, 2, 3, 4, 5, 6]   concatena
nums.pop()             # 6   estrae ultimo
nums.pop(0)            # 0   estrae primo (più lento: O(n))
nums.remove(3)         # rimuove la PRIMA occorrenza di 3
nums[1] = 99           # sostituisce per indice

Sorteren

Twee vormen – het is belangrijk om ze uit elkaar te houden:

Python
nums = [3, 1, 4, 1, 5, 9, 2, 6]
nums.sort()          # MUTA nums in place, ritorna None
ordinati = sorted(nums)  # ritorna NUOVA lista, lascia nums invariata
nums.sort(reverse=True)
sorted(nums, key=lambda n: -n)   # ordinamento per chiave

Lengte, lidmaatschap, iteratie

Python
len(nums)              # quanti elementi
3 in nums              # True/False
for n in nums:
    print(n)

Een lijst kopiëren

a = b kopieert niet; er wordt alleen een tweede naam voor dezelfde lijst aangemaakt. Aan eigenlijk kopiëren:

Python
copia = lista[:]            # slice completo
copia = list(lista)         # costruttore esplicito
copia = lista.copy()        # metodo

(Dit zijn allemaal ondiepe kopieën – geneste elementen blijven gedeeld.)

Kopieerlijsten: let op voor referenties

Wanneer u in Python list_b = list_a schrijft, maakt u geen kopie: u maakt alleen een tweede referentie. Als u list_b wijzigt, wordt ook list_a gewijzigd. Om een ​​echte onafhankelijke kopie te maken, moet u list_b = list_a.copy() schrijven of volledige slicing gebruiken: list_b = list_a[:].

Probeer het

Oefening#python.m3.l1.e1
Pogingen: 0Laden…

Gegeven de lijst `nums = [5, 2, 8, 1, 9, 3]`, bouw `first_three_sorted` met de eerste drie cijfers van nums gesorteerd in oplopende volgorde. Wijzig de getallen niet.

Editor laden…
Toon hint

nums[:3] zijn de eerste drie, daarna gesorteerd(...).

Oplossing beschikbaar na 3 pogingen

Oefening beoordelen

Oefening#python.m3.l1.e2
Pogingen: 0Laden…

Beginnend met `words = ['ciao']`, voeg 'mondo' toe aan het einde en voeg vervolgens '!' aan het begin. Evalueer 'woorden'.

Editor laden…
Toon hint

toevoegen aan de staart, invoegen(0, ...) aan de kop.

Oplossing beschikbaar na 3 pogingen

Extra uitdaging

Oefening#python.m3.l1.e3
Pogingen: 0Laden…

Given the list `items = [10, 20, 30, 40]`, use slicing to create a new list `reversed_items` containing the same elements but in reverse order. Finally, evaluate `reversed_items`.

Editor laden…
Toon hint

Snijden met een negatieve stap is [::-1]. Wijs het toe aan reversed_items.

Oplossing beschikbaar na 3 pogingen