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’}
’’ ’

Shop

Gifts for programmers

Learn programming in R: courses

$FREE
Gifts for programmers

Best Python online courses for 2022

$FREE
Gifts for programmers

Best laptop for Fortnite

$399+
Gifts for programmers

Best laptop for Excel

$
Gifts for programmers

Best laptop for Solidworks

$399+
Gifts for programmers

Best laptop for Roblox

$399+
Gifts for programmers

Best computer for crypto mining

$499+
Gifts for programmers

Best laptop for Sims 4

$

Latest questions

PythonStackOverflow

Common xlabel/ylabel for matplotlib subplots

1947 answers

PythonStackOverflow

Check if one list is a subset of another in Python

1173 answers

PythonStackOverflow

How to specify multiple return types using type-hints

1002 answers

PythonStackOverflow

Printing words vertically in Python

909 answers

PythonStackOverflow

Python Extract words from a given string

798 answers

PythonStackOverflow

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

606 answers

PythonStackOverflow

Python os.path.join () method

384 answers

PythonStackOverflow

Flake8: Ignore specific warning for entire file

360 answers

News


Wiki

Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python

How to specify multiple return types using type-hints

Printing words vertically in Python

Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries

Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically