Related Articles

# Python – Count Maximum consecution of K in N consecutive batches

• Last Updated : 06 Jun, 2021

Given a list, the task is to write a Python Program to count a maximum number of times K occurs consecutively in each batch of size N.

Example:

Input : test_list = [4, 4, 5, 4, 4, 4, 1, 2, 3, 4, 4, 4, 4, 4, 4, 4, 5, 6, 7, 4, 4, 5, 3, 4, 4, 4, 7, 4, 4, 4,  5, 6, 3, 5, 4, 4, 4, 6, 4, 4, 1, 4, 2, 4, 4], N = 15, K = 4

Output : [6, 3, 3]

Explanation : For first batch of 15 elements, 4 occurs in consecution, 2, 3 and 6. times. Since 6 is maximum hence one of output.

Input : test_list = [4, 4, 5, 4, 4, 4, 1, 2, 3, 4, 4, 4, 4, 4, 4, 4, 5, 6, 7, 4, 4, 5, 3, 4, 4, 4, 7, 4, 4, 4], N = 15, K = 4

Output : [6, 3]

Explanation : For first batch of 15 elements, 4 occurs in consecution, 2, 3 and 6. times. Since 6 is maximum hence one of output.

Method : Using groupby() + max() + list comprehension + slicing

In this, we get each consecution using slicing and using range to jump K elements to start grouping for each batch. The max() gets the maximum length of K consecutive group in each batch.

## Python3

 `# Python3 code to demonstrate working of``# Maximum consecution of K in N consecutive batches``# Using groupby() + max() + list comprehension + slicing ``from` `itertools ``import` `groupby`` ` `# initializing list``test_list ``=` `[``4``, ``4``, ``5``, ``4``, ``4``, ``4``, ``1``, ``2``, ``3``, ``4``, ``4``, ``4``, ``4``, ``4``, ``4``,``             ``4``, ``5``, ``6``, ``7``, ``4``, ``4``, ``5``, ``3``, ``4``, ``4``, ``4``, ``7``, ``4``, ``4``, ``4``, ``             ``5``, ``6``, ``3``, ``5``, ``4``, ``4``, ``4``, ``6``, ``4``, ``4``, ``1``, ``4``, ``2``, ``4``, ``4``]``              ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# initializing N``N ``=` `15`` ` `# initializing K ``K ``=` `4`` ` `# max() getting max. consecution of K, ranges being evaluated using slices``# and skips using range()``res ``=` `[``max``(``len``(``list``(grup)) ``for` `ele, grup ``in` `groupby(sub) ``if` `ele ``=``=` `K)``          ``for` `sub ``in` `(test_list[idx : idx ``+` `N] ``          ``for` `idx ``in` `range``(``0``, ``len``(test_list), N))]`` ` `# printing result``print``(``"Maximum consecution of K for each batch : "` `+` `str``(res))`

Output:

The original list is : [4, 4, 5, 4, 4, 4, 1, 2, 3, 4, 4, 4, 4, 4, 4, 4, 5, 6, 7, 4, 4, 5, 3, 4, 4, 4, 7, 4, 4, 4, 5, 6, 3, 5, 4, 4, 4, 6, 4, 4, 1, 4, 2, 4, 4]

Maximum consecution of K for each batch : [6, 3, 3]

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up