Datatypes in Python

Python heeft een aantal basis data types en data structuren. Deze zijn:

  • Getal
  • Lijst
  • Tuple
  • String
  • Set
  • Dictionary

Andere data structuren, zoals arrays en data tabellen, kan je toevoegen via speciale bibliotheken zoals numpy en pandas.

Getal

In [1]:
# integer
x = 2

# float
x = 3.14

# complex
x = 1 + 2j

Lijst

Een lijst is een reeks van objecten. Het is een elementaire data structuur dat in veel algoritmen gebruikt wordt. Lijsten en methodes om lijsten te bewerken zijn een standard onderdeel van Python.

In [2]:
# Maak een lijst aan door data elementen tussen brackets 
# '[' en ']' te plaatsen, gescheiden door comma's
L = [1, 2, 3, 4, 5, 6, 7]
In [3]:
# Een methode om de data items te benaderen in een lijst
# is door de positie index aan te geven. 
L[0]   # eerste data element
Out[3]:
1
In [4]:
L     # alle data elementen
Out[4]:
[1, 2, 3, 4, 5, 6, 7]
In [5]:
L[2:4]  # een range van data elementen
Out[5]:
[3, 4]
In [6]:
L[5:]  # data elementen vanaf positie 5 tot einde van de lijst
Out[6]:
[6, 7]
In [7]:
L[:3] # data elementen vanaf begin tot aan positie 3
Out[7]:
[1, 2, 3]
In [8]:
L[5] = 10  # verander een data element
L
Out[8]:
[1, 2, 3, 4, 5, 10, 7]

Tuple

Een tuple is een geordende reeks van data elementen. Haakjes ‘(‘ en ‘)’ worden gebruikt om een tupple te maken. De elementen in een tuple kunnen nadat deze is gecreëerd niet gewijzigd worden. Dit wordt ‘immutable’ genoemd.

In [9]:
t = (1, 2, 3)
t
Out[9]:
(1, 2, 3)
In [10]:
t[1] = 10   # geeft een foutmelding
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-10-b937bd2e5e0a> in <module>()
----> 1 t[1] = 10   # geeft een foutmelding

TypeError: 'tuple' object does not support item assignment
In [11]:
t[2]   # gebruik slicing om data elementen te benaderen
Out[11]:
3

String

Een string is een reeks van karakters. Individuele karakters kunnen benaderd worden zoals data elementen in een lijst. Echter, dit kan alleen om de waarde van het karakter te lezen, je kan op deze manier geen karakters schrijven. Strings zijn zogenaamd ‘immutable’.

In [12]:
s = "Hello World!"
s
Out[12]:
'Hello World!'
In [13]:
s[3]
Out[13]:
'l'
In [14]:
s[3] = 'X'  # fout melding!
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-14-ba5d97d75b4b> in <module>()
----> 1 s[3] = 'X'  # fout melding!

TypeError: 'str' object does not support item assignment

Set

Een set is een ongeordende verzameling van unieke data elementen. Omdat er geen ordening is kan je de elementen in een set niet benaderen met de slicing operator [].

In [15]:
u = {1, 2, 3}
u
Out[15]:
{1, 2, 3}
In [16]:
# kopieen van data elementen worden verwijderd
v = {1, 1, 1, 2, 2, 3, 4, 5, 5}
v
Out[16]:
{1, 2, 3, 4, 5}
In [17]:
1 in v   # test om zien of een data element in een set zit
Out[17]:
True
In [18]:
12 in v
Out[18]:
False

Dictionary

Een dictionary is een ongeordende verzameling van key-value paren. Gebruik accolades ‘{‘ en ‘}’ om een dictionary te maken. Netzo als een lijst, is een dictionary een veel gebruikte data structuur in algoritmen. Met de key kan snel data worden opgezocht in de dictionary.

In [19]:
d = {}   # lege dictionary
d
Out[19]:
{}
In [20]:
d['a'] = 1
d
Out[20]:
{'a': 1}
In [21]:
d['b'] = 2
d
Out[21]:
{'a': 1, 'b': 2}

Je kan dictionaries (en lijsten) gebruiken als data elementen in een andere dictionary (of lijst). Hiermee krijg je complete data structuren.

In [22]:
persoon1 = {'naam': 'Jan', 'leeftijd': 20}   # een dictionary
persoon2 = {'naam': 'Piet', 'leeftijd': 21}  # een dictionary
d = {}                                       # een lege dictionary
d['persoon1'] = persoon1                     # voeg dictionary persoon1 toe aan dictionary d
d['persoon2'] = persoon2                     # voeg dictionary persoon2 toe aan dictionary d
d
Out[22]:
{'persoon1': {'leeftijd': 20, 'naam': 'Jan'},
 'persoon2': {'leeftijd': 21, 'naam': 'Piet'}}

Data types in elkaar omzetten

In Python zijn commando’s beschikbaar om data types in elkaar om te zetten.

In [23]:
float(2)    # van integer naar float
Out[23]:
2.0
In [24]:
int(3.14)    # van float naar integer
Out[24]:
3
In [25]:
set([1, 2, 3])   # van lijst naar set
Out[25]:
{1, 2, 3}
In [26]:
set((1, 2, 3))   # van tuple naar set
Out[26]:
{1, 2, 3}
In [27]:
list((1, 2, 3))  # van tuple naar lijst
Out[27]:
[1, 2, 3]
In [28]:
list({1, 3, 2})  # van set naar lijst
Out[28]:
[1, 2, 3]