Voorbeeld - Omzetten van Datatypes

👀 Voorbeeld - Omzetten

Er bestaan functies om een lijst naar een verzameling (set) om te zetten en vice versa. Deze functies lijken op de functie int(), die ervoor zorgt dat een waarde als een geheel getal (type int) wordt gezien.

conversion

Hieronder zie je een voorbeeld waarbij we een string omzetten naar een geheel getal:

print('Geef een getal')
# We zetten de ingelezen waarde om naar een int
x = int(input())
print(x + 3)
# Als we dat niet doen, krijgen we een error
y = input()
print(y + 3)

In dit voorbeeld gebruiken we de functie int() om de waarde die door de gebruiker wordt ingevoerd om te zetten naar een geheel getal. Dit is noodzakelijk omdat de input standaard als tekst (string) wordt behandeld. Als je deze tekst direct probeert op te tellen bij een getal, krijg je een foutmelding (error). Daarom moeten we de waarde expliciet omzetten naar een int.

Op een gelijkaardige manier kun je een lijst omzetten naar een verzameling (set) met de functie set(). Om een verzameling terug om te zetten naar een lijst gebruik je de functie list().

Hieronder zie je een voorbeeld waarbij we een lijst omzetten naar een verzameling en daarna weer terug naar een lijst:

lijst = ['a', 'b', 'c', 'd', 'a']
print(set(lijst))  # {'a', 'b', 'c', 'd'}
verz = {'a', 'b', 'c', 'd'}
print(list(verz))  # ['a', 'b', 'c', 'd']

💡 Hint - Geen Dubbele Elementen in Verzameling

Door van een lijst een verzameling te maken met de set()-functie worden automatisch alle dubbele elementen verwijderd. Een verzameling kan namelijk geen dubbele waarden bevatten. Dat is handig!

🧠 Denkoefening - Wat doet dat?

Beschrijf in woorden wat het volgende stukje code doet:

lijst = ['a', 'b', 'c', 'd', 'a', 'b', 'a', 'a']
print(list(set(lijst)))

👀 Voorbeeld - Sorteren na het omzetten

In plaats van meteen de lijst te sorteren met de sorted() functie, kan je eerst een set maken om dubbele waarden te verwijderen. Daarna zet je de set terug om naar een > lijst en sorteer je de elementen.

# Omzetten van lijst naar set om dubbele waarden te verwijderen
lijst = ['b', 'a', 'c', 'b']
unieke_waarden = set(lijst)

# Omzetten van set naar gesorteerde lijst
gesorteerde_lijst = sorted(list(unieke_waarden))
print(gesorteerde_lijst)  # Output: ['a', 'b', 'c']

💻 Programmeeroefening - Verwijder dubbele waarden, zet om naar lijst, en sorteer

Schrijf een functie verwijder_dubbele_en_sorteer(lijst) die:

  • De dubbele waarden uit de lijst verwijdert door de lijst om te zetten naar een set.
  • De set vervolgens omzet naar een lijst.
  • De lijst sorteert en retourneert.

Je functie moet werken voor zowel getallen als strings.

Voorbeelden:

print(verwijder_dubbele_en_sorteer(['c', 'a', 'b', 'a']))  # Output: ['a', 'b', 'c']
print(verwijder_dubbele_en_sorteer([3, 1, 4, 1, 5, 9]))   # Output: [1, 3, 4, 5, 9]