Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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']