Level 1 : Creating an iterator from a dictionary.


class DictIterator:
    def __init__(self, data):
        self.data = list(data.items())
        self.index = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.index >= len(self.data):
            raise StopIteration
        key, value = self.data[self.index]
        self.index += 1
        return f"{key}: {value}"

it = iter(DictIterator({"a": 1, "b": 2}))
print(list(it))

Author: SandhyaR | Tags: iterator | 1859+ Python FAQs | Share
data-structure | working-with-binary-files-(rb,-wb) | syntax | string | string-formatting | sys-module | string-methods | strings | string-slicing | thread-synchronization | working-with-temporary-files-using-tempfile | slice | rollback | string-slicing | sum() | regex | string-formatting | round | reading:-read(),-readline(),-readlines() | operators | literal-characters-and-special-characters | type-conversion | while-else-loop | expression | error-handling | class-and-instance-variable | math | basic | syntaxerror | format | integer | membership-operators-(in,-not-in) | thread-safe-data-structures-(queue.queue) | mysql | built-in | class | call | tuples | syntax-error | collection | higher-order-function | managing-directories-with-os-and-shutil | lambdas | immutable-data-type | heap-memory | error | sorting | functions | min-function | __all__-attribute | oop | numpy | assignment-operators | update | slicing | mutable | generators | file-handling | iterators | operand | operator | head-and-tail | directory-operations | assignment-operator | type_conversion | stack | destructor | method | control-flow | multithreading | asyncio-module | boolean-and-non-boolean | string-method | global-keyword | loops | default-mutable-argument | operations | why-use-multiprocessing-over-threading?-(gil) | formatting-with-strftime | parsing-with-strptime | conditional-statement | single-inheritance | pickling--unpickling | identity-operators-(is,-is-not) | syntax-error | handling-missing-values-(fillna,-dropna) | indentation | global-variable | typeerror | operator-and | numeric | method-overloading | regular-expressions | mathematics | exception-handling | copy | benefit | lists | raise-statement | list-method | using-the-threading-module | list-methods-and-slicing | decimal | methods | test-discovery | turtle | complex | append | type-conversion-and-casting | library | goto-function | list-comprehensions | logical-operator | creating-and-starting-threads | installation | docstring | multiple-inheritance | list-indexing | class-and-object | static-method | functional-programming | time-series-with-pandas | threading | default-arguments | init | pep | package-management | complex-number | python-django | using-else-and-finally | dictionary | statement | identity-operator | invalid-list | python_version | collections | tuple-unpacking | encoding | __future__ | generator | dicts | key-value-pairs | while-and-for-loop | dictionaries | operator-or | arithmetic-expression | conditional-statement | formal-and-actual-parameter | built-in-modules | quantifiers-(*,-+,-?,-{}) | working-with-file-paths | booleans | yield | exception | matrix | module | factorial-function | list-slicing | version-check | tuple-methods | join | data-structures | control-statement | python-module | mathematical-function | map-function | software-design | iterable | multiple-except-blocks | overriding-methods | split | frozenset | unit-testing | python-operators | descriptors | filtering-and-indexing | type-conversion | encapsulation | name-mangling | generators-in-python | logical-operation | nested-loop | intering | condition | multiple-inheritance | pandas | namespace | range | introduction-to-multiprocessing | precedence-and-associativity | asyncio | matrix-list-comprehension | implementation | function-argument | list-comprehension | operator-overloading | list-comprehension | data-type-conversions | using-assertions-(assertequal,-assertraises) | comment | list-mutation | with-statement | version | arithmetic-operation | list-operation | sorted | feature | walking-through-directories-using-os.walk() | difference-between-threads-and-processes | design-principle | logical-operators | input-function | odd-number | control-flow | pass | using-os-and-pathlib-modules | else | function | gil | logical-operator | set | working-with-dates-and-times | lambda-functions | loop-control-statements | arbitrary-arguments-(*args,-**kwargs) | immutability | mapping-function | data-structure | __init_subclass__ | touples | python | indexing:-loc-vs-iloc | reading-and-writing-files | sum-function | memory | staticmethod | int | namedtuple | file-handling | lambda | recursion | datetime | application | iterator | list | while-loop | dictionary-methods | import-method | global-variable | inherit | access-modifier | return-statement | multiprocessing | raise | loop-control | virtual-environment | min-max-function | array | expand-tab | inheritance | random | zip | filter | objects | postfix | else-statement | string-method | introduction-to-threads | using-lists-as-stacks | lambda-function | swapping | id-function | keyword | set-operation | thread | using-yield-in-functions | assert | zip-function | bitwise | floating-point-precision | list-vs-tuple | shallow-copy | datatype | file_handling | recurssion | round-function | overflow | list-join | error-handling | string-manipulation | tuple | constructor | python-history | escape-operator | identifier | object-attribute | functional-programming | indexing | opening-files-(open()) | input-function | input | aggregating-data-with-functools.reduce() | enumerate() | comprehension | joining-and-merging-dataframes | scientific-notation | built-in-function | matplotlib | data-types | using-join()-and-is_alive()-methods | print | conversion | filter-function | interpreter | advanced-file-operations | center | compute | context-manager | deep-copy | sorting-and-ranking | list,-set,-and-dictionary-comprehensions | introduction-to-python | identity-operator | fabs-function | integers | string-iteration | zfill-function | class-and-inheritance | file | variable | counter-function | defining-functions | floats | exponentiation | function-and-scope | binary-operation | reading-and-writing-large-files-efficiently | binary | dictionary-comprehensions | data-type | global | exception-handling | math-copysign | for | comparison | pseudocode | precedence | loop | while-loops | bitwise-operator | built-in-function | dataframe-and-series-objects | counter | writing:-write(),-writelines() | boolean | class-decorators | datetime.date,-datetime.time,-datetime.datetime | string-concatenation | classes | using-map()-for-transformations | debugging | data-type | regular-expression | creating-custom-modules | def | memory-management | bitwise-operator | python-repl | sets | match | virtual-environment | max-min | print-statement | magic-method | sys | python-syntax-and-structure | conditional-statements | parameter | anchors-(^,-$) | async | command-line-parsing | oops | polymorphism | attribute | decorator | random-function | choice | data-structures-in-python | boolean-masking | data_structure ...