# Python – Itertools.count()

Python Itertools are a great way of creating complex iterators which helps in getting faster execution time and writing memory-efficient code. `Itertools` provide us with functions for creating infinite sequences and `itertools.count()` is one such function and it does exactly what it sounds like, it counts!

## Itertools.count()

`itertools.count()` are generally used with `map()` to generate consecutive data points which is useful in when working with data. It can also be used with `zip` to add sequences by passing count as parameter.

Syntax: itertools.count(start=0, step=1)

Parameters:
start: Start of the sequence (defaults to 0)
step: Difference between consecutive numbers (defaults to 1)

Returns: Returns a count object whose .__next__() method returns consecutive values.

Let us get a deep understanding of this mighty sword using some simple Python programs.

Example #1: Creating evenly spaced list of numbers
`itertools.count()` can be used to generate infinite recursive sequences easily. Lets have a look

 `# Program for creating a list of ` `# even and odd list of integers ` `# using count() ` ` `  ` `  `from` `itertools ``import` `count ` ` `  `# creates a count iterator object ` `iterator ``=``(count(start ``=` `0``, step ``=` `2``)) ` ` `  `# prints a odd list of integers ` `print``(``"Even list:"``,  ` `      ``list``(``next``(iterator) ``for` `_ ``in` `range``(``5``))) ` ` `  `# creates a count iterator object ` `iterator ``=` `(count(start ``=` `1``, step ``=` `2``)) ` ` `  `# prints a odd list of integers ` `print``(``"Odd list:"``,  ` `      ``list``(``next``(iterator) ``for` `_ ``in` `range``(``5``))) `

Output :

```Even list: [0, 2, 4, 6, 8]
Odd list: [1, 3, 5, 7, 9]
```

In the same way, we can also generate a sequence of negative and floating-point numbers. For better accuracy of floating-point numbers use `(start + step * i for i in count())`.

Example #2: Emulating `enumerate()` using `itertools.count()`
As mentioned earlier, `count()` can be used with `zip()`. Let’s see how can we use it to mimic the functionality of `enumerate()` without even knowing the length of list beforehand!

 `# Program to emulate enumerate()  ` `# using count() ` ` `  `# list containing some strings ` `my_list ``=``[``"Geeks"``, ``"for"``, ``"Geeks"``] ` ` `  `# count spits out integers for  ` `# each value in my list ` `for` `i ``in` `zip``(count(start ``=` `1``,  ` `                   ``step ``=` `1``), my_list): ` `     `  `    ``# prints tuple in an enumerated  ` `    ``# format ` `    ``print``(i) `

Output :

```(1, 'Geeks')
(2, 'for')
(3, 'Geeks')
```

Note: Extra care must be taken while using `itertools.count()` as it is easy to get stuck in an infinite loop.

The following code functions the same as `while True:` thus proper termination condition must be specified.

```for i in count(start=0, step=2):
print(i)
```

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Previous
Next