12 Aug 2022
Resources
https://realpython.com/python-defaultdict/
Grouping items
dep = [('Sales', 'John Doe'),
('Sales', 'Martin Smith'),
('Accounting', 'Jane Doe'),
('Marketing', 'Elizabeth Smith'),
('Marketing', 'Adam Doe')]
Now, you need to create a dictionary that groups the employees by department. To do this, you can use a defaultdict as follows:
from collections import defaultdict
dep_dd = defaultdict(list)
for department, employee in dep:
dep_dd[department].append(employee)
Grouping UNIQUE items
dep = [('Sales', 'John Doe'),
('Sales', 'Martin Smith'),
('Accounting', 'Jane Doe'),
('Marketing', 'Elizabeth Smith'),
('Marketing', 'Elizabeth Smith'),
('Marketing', 'Adam Doe'),
('Marketing', 'Adam Doe'),
('Marketing', 'Adam Doe')]
dep_dd = defaultdict(set)
for department, employee in dep:
dep_dd[department].add(employee)
Counting items
incomes = [('Books', 1250.00),
('Books', 1300.00),
('Books', 1420.00),
('Tutorials', 560.00),
('Tutorials', 630.00),
('Tutorials', 750.00),
('Courses', 2500.00),
('Courses', 2430.00),
('Courses', 2750.00),]
from collections import defaultdict
dd = defaultdict(float)
for product, income in incomes:
dd[product] += income
for product, income in dd.items():
print(f'Total income for {product}: ${income:,.2f}')