30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
from collections import defaultdict
|
|
from heapq import nlargest
|
|
|
|
data = [('Employee Name', 'Employee ID', 'Salary', 'Department'),
|
|
('Tyler Bennett', 'E10297', 32000, 'D101'),
|
|
('John Rappl', 'E21437', 47000, 'D050'),
|
|
('George Woltman', 'E00127', 53500, 'D101'),
|
|
('Adam Smith', 'E63535', 18000, 'D202'),
|
|
('Claire Buckman', 'E39876', 27800, 'D202'),
|
|
('David McClellan', 'E04242', 41500, 'D101'),
|
|
('Rich Holcomb', 'E01234', 49500, 'D202'),
|
|
('Nathan Adams', 'E41298', 21900, 'D050'),
|
|
('Richard Potter', 'E43128', 15900, 'D101'),
|
|
('David Motsinger', 'E27002', 19250, 'D202'),
|
|
('Tim Sampair', 'E03033', 27000, 'D101'),
|
|
('Kim Arlich', 'E10001', 57000, 'D190'),
|
|
('Timothy Grove', 'E16398', 29900, 'D190')]
|
|
|
|
departments = defaultdict(list)
|
|
for rec in data[1:]:
|
|
departments[rec[-1]].append(rec)
|
|
|
|
N = 3
|
|
format = " %-15s " * len(data[0])
|
|
for department, recs in sorted(departments.items()):
|
|
print ("Department %s" % department)
|
|
print (format % data[0])
|
|
for rec in nlargest(N, recs, key=lambda rec: rec[-2]):
|
|
print (format % rec)
|
|
print('')
|