Ga naar hoofdinhoud

Bouwsteen 1 — items in Python

Hier bouw je op verder

Leerdoel: je slaat de items op als een lijst van (waarde, gewicht) tuples, en kunt erin "kijken".

Wat we willen

De items uit het idee, die de rest van dit hoofdstuk gebruikt:

ItemWaardeGewicht
111
262
3185
4226
5287

In Python: een lijst van tuples, waarbij elke tuple (waarde, gewicht) is.

items = [(1, 1), (6, 2), (18, 5), (22, 6), (28, 7)]

Elk element is een tuple (waarde, gewicht) voor één item.

Indexen

items[0] = (1, 1) — de eerste tuple. items[2] = (18, 5) — de derde tuple (item 3 uit de tabel).

Python begint te tellen bij 0. De tabel hierboven telt vanaf 1 ("item 1, item 2, …"), de code vanaf 0. Dat is wennen, maar zo doet al je andere Python-code het ook.

Tuple uitpakken

Met tuple-unpacking pak je waarde en gewicht in één regel:

waarde, gewicht = items[2]
print(waarde, gewicht) # 18 5

Of zonder unpacking:

print(items[2][0]) # 18 (waarde)
print(items[2][1]) # 5 (gewicht)

Beide werken; unpacking leest beter.

Voorspel

Wat denk je dat dit print?

items = [(1, 1), (6, 2), (18, 5), (22, 6), (28, 7)]
n = len(items)

for i in range(n):
waarde, gewicht = items[i]
print(f"item {i + 1}: waarde={waarde}, gewicht={gewicht}")
Antwoord
item 1: waarde=1, gewicht=1
item 2: waarde=6, gewicht=2
item 3: waarde=18, gewicht=5
item 4: waarde=22, gewicht=6
item 5: waarde=28, gewicht=7

We tellen vanaf i + 1 om de tabel-nummering te matchen, maar gebruiken items[i] om de echte Python-index op te halen.

Bouw zelf en test

Maak een functie item_info(items, i) die de string "item N: waarde=V, gewicht=G" returnt voor item op Python-index i.

Python
Code-omgeving wordt voorbereid…
Tip

Twee regels werk: eerst tuple-unpacking op items[i], dan een f-string teruggeven. In een f-string (f"...") zet je een variabele in de tekst met {...}, en {i + 1} mag daar ook.

Antwoord
def item_info(items, i):
waarde, gewicht = items[i]
return f"item {i + 1}: waarde={waarde}, gewicht={gewicht}"

Wat nu nog mist

De items staan er. Nu nog een tabel om de waardes per (i, w) in op te slaan; die maak je op de volgende pagina leeg aan.

Door naar lege tabel →.