DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on • Edited on

Iterator in Python (2)

Buy Me a Coffee

*Memo:

iter() or __iter__() can create an iterator with an iterable as shown below:

print(iter())
# TypeError: iter expected at least 1 argument, got 0
Enter fullscreen mode Exit fullscreen mode
v1 = [0, 1, 2, 3, 4] # list
v2 = iter(v1)
v2 = v1.__iter__()

print(v2)
# <list_iterator object at 0x0000026906F3C460>

print(type(v2))
# <class 'list_iterator'>

for x in v2:
    print(x)
# 0
# 1
# 2
# 3
# 4
Enter fullscreen mode Exit fullscreen mode
v1 = (0, 1, 2, 3, 4) # tuple
v2 = iter(v1)
v2 = v1.__iter__()

print(v2)
# <tuple_iterator object at 0x000002821F7695A0>

print(type(v2))
# <class 'tuple_iterator'>

for x in v2:
    print(x)
# 0
# 1
# 2
# 3
# 4
Enter fullscreen mode Exit fullscreen mode
v1 = {0, 1, 2, 3, 4}            # set
v1 = frozenset({0, 1, 2, 3, 4}) # frozenset

v2 = iter(v1)
v2 = v1.__iter__()

print(v2)
# <set_iterator object at 0x00000282203069C0>

print(type(v2))
# <class 'set_iterator'>

for x in v2:
    print(x)
# 0
# 1
# 2
# 3
# 4
Enter fullscreen mode Exit fullscreen mode
v1 = {'name': 'John', 'age': 36, 'gender': 'Male'} # dict
v1 = {'name': 'John', 'age': 36, 'gender': 'Male'} # dict.keys()
v2 = iter(v1)
v2 = v1.__iter__()

print(v2)
# <dict_keyiterator object at 0x0000028220423FB0>

print(type(v2))
# <class 'dict_keyiterator'>

for x in v2:
    print(x)
# name
# age
# gender
Enter fullscreen mode Exit fullscreen mode
v1 = {'name': 'John', 'age': 36, 'gender': 'Male'}.values() # dict.values()

v2 = iter(v1)
v2 = v1.__iter__()

print(v2)
# <dict_valueiterator object at 0x00000282204FEE80>

print(type(v2))
# <class 'dict_valueiterator'>

for x in v2:
    print(x)
# John
# 36
# Male
Enter fullscreen mode Exit fullscreen mode
v1 = {'name': 'John', 'age': 36, 'gender': 'Male'}.items() # dict.items()

v2 = iter(v1)
v2 = v1.__iter__()

print(v2)
# <dict_itemiterator object at 0x00000282202F1670>

print(type(v2))
# <class 'dict_itemiterator'>

for x in v2:
    print(x)
# ('name', 'John')
# ('age', 36)
# ('gender', 'Male')
Enter fullscreen mode Exit fullscreen mode
v1 = 'Hello' # str
v2 = iter(v1)
v2 = v1.__iter__()

print(v2)
# <str_ascii_iterator object at 0x0000026906CEA560>

print(type(v2))
# <class 'str_ascii_iterator'>

for x in v2:
    print(x)
# H
# e
# l
# l
# o
Enter fullscreen mode Exit fullscreen mode
v1 = b'Hello' # bytes
v2 = iter(v1)
v2 = v1.__iter__()

print(v2)
# <bytes_iterator object at 0x0000026B42119F30>

print(type(v2))
# <class 'bytes_iterator'>

for x in v2:
    print(x)
# 72
# 101
# 108
# 108
# 111
Enter fullscreen mode Exit fullscreen mode
v1 = bytearray(b'Hello') # bytearray
v2 = iter(v1)
v2 = v1.__iter__()

print(v2)
# <bytearray_iterator object at 0x0000026B423CDBA0>

print(type(v2))
# <class 'bytearray_iterator'>

for x in v2:
    print(x)
# 72
# 101
# 108
# 108
# 111
Enter fullscreen mode Exit fullscreen mode
v1 = range(5) # range
v2 = iter(v1)
v2 = v1.__iter__()

print(v2)
# <range_iterator object at 0x000001F954F52150>

print(type(v2))
# <class 'range_iterator'>

for x in v2:
    print(x)
# 0
# 1
# 2
# 3
# 4
Enter fullscreen mode Exit fullscreen mode

Top comments (0)