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