Change language

itertools.groupby in Python

Creates an iterator over the grouped elements of the passed object.

itertools.groupby (iterable, key = None)

-> iterator [ tuple [Any, iterator]]

iiterable - An object whose elements you want to group.

key = None - A function that calculates and returning the grouping key for each item. If not specified, the identity function is used (returns the element itself). 

in key . See sorted () .

Function behavior is similar to the uniq filter on Unix ... Each time the value returned by the key function changes, a new group is created. Therefore, it is advisable to sort the items using the same function. Thus, the behavior differs from the GROUP BY behavior in SQL , which groups elements regardless of their order.

This function produces two-element tuples
First element: the value returned by the key function. 
Second element: an iterator over the objects in the group. 

  from itertools import groupby 

def grouper (item):
"" "We will use this function to group sorting. "" "
return item [’ country’]

data = [
{’city’:’ Moscow’, ’country’:’ Russia’},
{ ’city’:’ Novosibirsk’, ’country’:’ Russia’},
{’city’:’ Beijing’, ’country’:’ China’},

# Pre-sort.
data = sorted (data, key = grouper)

for key, group_items in groupby (data, key = grouper):
print (’Key:% s’% key)
for item in group_items:
print (’Item:% s’% item)

’ ’’
Key: China
Item: {’city’:’ Beijing’, ’country’:’ China’}
Key: Russia
Item: {’city’:’ Moscow’, ’country’:’ Russia’}
Item: {’city’:’ Novosibirsk’, ’country’:’ Russia’}
’’ ’


Best laptop for Sims 4


Best laptop for Zoom


Best laptop for Minecraft


Best laptop for engineering student


Best laptop for development


Best laptop for Cricut Maker


Best laptop for hacking


Best laptop for Machine Learning


Latest questions


psycopg2: insert multiple rows with one query

12 answers


How to convert Nonetype to int or string?

12 answers


How to specify multiple return types using type-hints

12 answers


Javascript Error: IPython is not defined in JupyterLab

12 answers



Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method