Wat is een iterabel object?
sobes.tech AI
Antwoord van AI
Een iterabel object is een object dat je kunt doorlopen, dat wil zeggen dat je de elementen ervan één voor één kunt krijgen. In Python ondersteunen deze objecten de methode __iter__(), die een iterator teruggeeft, of ondersteunen ze de methode __getitem__(), die gehele getalindexen accepteert (beginnend bij 0).
Voorbeelden van iterabele objecten in Python:
- Strings (
str) - Lijsten (
list) - Tuples (
tuple) - Verzamelingen (
set) - Woordenboeken (
dict) (standaard itereren ze over de sleutels) - Ranges (
range) - Bestandsobjecten
Iterabele objecten worden gebruikt in for-lussen, list-, dict- en set-comprehensies, generatorexpressies, en in functies zoals sum(), min(), max(), sorted().
Relatie tussen iterabele objecten en iterators: een iterabel object kan worden doorlopen, en een iterator is een object dat het doorlopen zelf uitvoert. De methode __iter__() van een iterabel object geeft een iterator voor dat object. De iterator heeft een methode __next__(), die het volgende element van de sequentie teruggeeft. Als er geen elementen meer zijn, werpt __next__() een StopIteration-uitzondering.
Voorbeeld van het gebruik van een iterabel object in een for-lus:
# iterabel object - lijst
my_list = [1, 2, 3]
# for-lus die werkt met een iterabel object
for item in my_list:
print(item)
Voorbeeld van expliciet verkrijgen van een iterator:
# iterabel object - lijst
my_list = [1, 2, 3]
# verkrijg een iterator uit het iterabele object
my_iterator = iter(my_list)
# verkrijg elementen met behulp van de __next__() methode
try:
print(next(my_iterator)) # 1
print(next(my_iterator)) # 2
print(next(my_iterator)) # 3
print(next(my_iterator)) # StopIteration
except StopIteration:
print("Einde van de iteratie")