Itertools is a module in Python that enables fast, and memory-efficient iteration over iterable data structures.
The module has a number of functions that construct and return iterators. One such function is the groupby
function. This function groups data from the given iterable based on the key that is computed by a function.
zip_groupby(iterable, key=None)
The function takes two arguments: iterables
and fill value
.
iterable
is the data structure over which you want to iterate. It can be of any type such as a list, tuple, or dictionary.
key
is a function that computes the key for each element in iterable
.
The function returns an iterable object with consecutive keys and groups.
input_list
that contains some universities and the programs offered.key_func
function to compute the key based on which we will group the data.grouped_data
is returned by the groupby
method which takes in the input_list
and key_func
to group data.grouped_data
and print the key and its corresponding value.import itertoolsinput_list = [("University", "Harvard"),("University","MIT"),("University","UC Berkley"),("Program","Computer Science"),("Program", "Marine Biology")]key_func = lambda x: x[0]grouped_data = itertools.groupby(input_list,key_func)for key,value in grouped_data:print(key,":",list(value))