Antwoorden — Hoofdstuk 5: Lijsten (list)
Opmerking: Code is in het Engels, met korte Nederlandse toelichting erboven of eronder.
Antwoord 1 — Basis maken en lezen
fruits = ["apple", "banana", "cherry"]
print(len(fruits))
print(fruits[0]) # first
print(fruits[-1]) # last via negative index
Antwoord 2 — Slices
nums = [10, 20, 30, 40, 50, 60]
print(nums[1:4]) # [20, 30, 40]
print(nums[:3]) # [10, 20, 30]
print(nums[3:]) # [40, 50, 60]
rev = nums[::-1]
print(rev)
Antwoord 3 — Mutatie met index en slice
items = [1, 2, 3, 4, 5]
items[1] = 20
print(items) # [1, 20, 3, 4, 5]
items[2:4] = [7, 8, 9] # replaces 3,4 by 7,8,9
print(items) # [1, 20, 7, 8, 9, 5]
items[2:2] = [100, 101] # insert at position 2
print(items) # [1, 20, 100, 101, 7, 8, 9, 5]
Antwoord 4 — Toevoegen en verwijderen
colors = ["red"]
colors.append("green")
colors.extend(["blue", "green"]) # now ["red","green","blue","green"]
colors.remove("green") # removes first "green"
last = colors.pop() # removes last element
print("popped:", last)
print(colors)
Antwoord 5 — Zoeken en membership
letters = ["a", "b", "a", "c", "a"]
print("b" in letters) # True
print(letters.index("a")) # 0
print(letters.count("a")) # 3
Antwoord 6 — Iteratie en enumerate
names = ["Ava", "Bo", "Cid"]
for n in names:
print(n)
for i, n in enumerate(names, start=1):
print(f"{i}. {n}")
Antwoord 7 — Sorteren met key en reverse
names = ["bo", "Ava", "cid", "Dia"]
# case-insensitive alphabetical
case_ins = sorted(names, key=str.lower)
print(case_ins)
# by length desc, then alphabetical (case-insensitive) for ties
by_len_desc = sorted(names, key=lambda s: (len(s), s.lower()), reverse=True)
print(by_len_desc)
Antwoord 8 — Kopiëren vs. aliasing
original = [1, 2, 3]
alias = original # no copy
alias.append(4)
print(original, alias) # both show [1,2,3,4]
copy = original[:] # shallow copy
copy.append(5)
print(original) # [1, 2, 3, 4]
print(copy) # [1, 2, 3, 4, 5]
Antwoord 9 — 2D‑lijst: vermenigvuldigingsvalkuil
# wrong way (rows alias the same inner list)
m = [[0] * 3] * 2
m[0][0] = 1
print(m) # [[1, 0, 0], [1, 0, 0]]
# correct way (independent rows)
rows = 2; cols = 3
m = [[0 for _ in range(cols)] for _ in range(rows)]
m[0][0] = 1
print(m) # [[1, 0, 0], [0, 0, 0]]
Antwoord 10 — Lijstcomprehensies
squares = [x * x for x in range(11)]
print(squares)
evens = [x for x in range(21) if x % 2 == 0]
print(evens)
labels = ["even" if x % 2 == 0 else "odd" for x in range(6)]
print(labels)
Uitdaging (optioneel) — Unieke elementen met behoud van volgorde
def unique_in_order(items):
seen = set()
result = []
for x in items:
if x not in seen:
seen.add(x)
result.append(x)
return result
print(unique_in_order(["a", "b", "a", "c", "b"])) # ['a', 'b', 'c']