w3resource

Python: Make an iterator that returns consecutive keys and groups from the iterable


8. Consecutive Keys Group

Write a Python program to create an iterator that returns consecutive keys and groups from an iterable.

Sample Solution:

Python Code:

import itertools as it
print("Iterate over characters of a string and display\nconsecutive keys and groups from the iterable:")
str1 = 'AAAAJJJJHHHHNWWWEERRRSSSOOIIU'
data_groupby = it.groupby(str1)
for key, group in data_groupby:
    print('Key:', key)
    print('Group:', list(group))    
print("\nIterate over elements of a list and display\nconsecutive keys and groups from the iterable:")
str1 = 'AAAAJJJJHHHHNWWWEERRRSSSOOIIU'    
str1 = [1,2,2,3,4,4,5,5,5,6,6,7,7,7,8]
data_groupby = it.groupby(str1)
for key, group in data_groupby:
    print('Key:', key)
    print('Group:', list(group))

Sample Output:

Iterate over characters of a string and display
consecutive keys and groups from the iterable:
Key: A
Group: ['A', 'A', 'A', 'A']
Key: J
Group: ['J', 'J', 'J', 'J']
Key: H
Group: ['H', 'H', 'H', 'H']
Key: N
Group: ['N']
Key: W
Group: ['W', 'W', 'W']
Key: E
Group: ['E', 'E']
Key: R
Group: ['R', 'R', 'R']
Key: S
Group: ['S', 'S', 'S']
Key: O
Group: ['O', 'O']
Key: I
Group: ['I', 'I']
Key: U
Group: ['U']

Iterate over elements of a list and display
consecutive keys and groups from the iterable:
Key: 1
Group: [1]
Key: 2
Group: [2, 2]
Key: 3
Group: [3]
Key: 4
Group: [4, 4]
Key: 5
Group: [5, 5, 5]
Key: 6
Group: [6, 6]
Key: 7
Group: [7, 7, 7]
Key: 8
Group: [8]

For more Practice: Solve these Related Problems:

  • Write a Python program to create an iterator that groups consecutive identical elements from an iterable using itertools.groupby.
  • Write a Python program to iterate over an iterable, grouping consecutive elements that share a common property, and output the key with its group as a list.
  • Write a Python program to build an iterator that returns consecutive keys and their corresponding grouped values from a sorted iterable.
  • Write a Python program to generate groups of consecutive elements, then map a function to count the length of each group.

Python Code Editor:


Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Python program to make an iterator that drops elements from the iterable as long as the elements are negative; afterwards, returns every element.
Next: Write a Python program to split an iterable and generate iterables specified number of times.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.