Level 6 : Custom range implementation.


class CustomRange:
    def __init__(self, start, end, step=1):
        self.current = start
        self.end = end
        self.step = step

    def __iter__(self):
        return self

    def __next__(self):
        if self.current >= self.end:
            raise StopIteration
        value = self.current
        self.current += self.step
        return value

it = iter(CustomRange(2, 10, 2))
print(list(it))

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