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
vuota = []
numeri = [10, 20, 30]
mista = [1, "due", 3.0, True, None] # tipi diversi: legale ma raroToegang per index en segment
Indexen beginnen bij 0. Negatieve indexen tellen vanaf rechts:
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'] reverseEen 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
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 indiceSorteren
Twee vormen – het is belangrijk om ze uit elkaar te houden:
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 chiaveLengte, lidmaatschap, iteratie
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:
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
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.
Toon hint
nums[:3] zijn de eerste drie, daarna gesorteerd(...).
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Beginnend met `words = ['ciao']`, voeg 'mondo' toe aan het einde en voeg vervolgens '!' aan het begin. Evalueer 'woorden'.
Toon hint
toevoegen aan de staart, invoegen(0, ...) aan de kop.
Oplossing beschikbaar na 3 pogingen
Extra uitdaging
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`.
Toon hint
Snijden met een negatieve stap is [::-1]. Wijs het toe aan reversed_items.
Oplossing beschikbaar na 3 pogingen