fork download
  1. from collections import namedtuple
  2. from operator import attrgetter
  3. from pprint import pprint
  4.  
  5. Product = namedtuple('Product',
  6. 'number name supplier_name supplier_id quantity')
  7. Product.by_number = attrgetter('number')
  8. Product.by_name = attrgetter('name')
  9. Product.by_supplier_name = attrgetter('supplier_name')
  10. Product.by_supplier_id = attrgetter('supplier_id')
  11. Product.by_quantity = attrgetter('quantity')
  12.  
  13. stock_set = {
  14. Product(1004, 'Clapper', 'Joseph Enterprises', 888, 32),
  15. Product(1002, 'Chia Elmer Fudd', 'Joseph Enterprises', 888, 56),
  16. Product(1006, 'Veg-O-Matic', 'Ronco', 999, 9),
  17. Product(1003, 'Pocket Fisherman', 'Ronco', 999, 17),
  18. Product(1007, 'Bass-O-Matic', 'Dan Aykroyd', 666, 25),
  19. Product(1005, 'Phone Glove', 'Craig Ferguson', 777, 0),
  20. Product(1001, 'Clapper Plus', 'Joseph Enterprises', 888, 44),
  21. }
  22. pprint(stock_set)
  23. pprint(sorted(stock_set, key=Product.by_name))
  24. most = max(stock_set, key=Product.by_quantity)
  25. print(most.number)
  26. print()
  27.  
  28. stock_dict = {prod.number:prod for prod in stock_set}
  29. pprint(stock_dict)
  30. pprint(sorted(stock_dict.values(), key=Product.by_name)) # pass dict values!
  31. most = max(stock_dict.values(), key=Product.by_quantity) # pass dict values!
  32. print(most.number)
  33. print(stock_dict[most.number])
  34.  
Success #stdin #stdout 0.04s 9696KB
stdin
Standard input is empty
stdout
{Product(number=1001, name='Clapper Plus', supplier_name='Joseph Enterprises', supplier_id=888, quantity=44),
 Product(number=1002, name='Chia Elmer Fudd', supplier_name='Joseph Enterprises', supplier_id=888, quantity=56),
 Product(number=1003, name='Pocket Fisherman', supplier_name='Ronco', supplier_id=999, quantity=17),
 Product(number=1004, name='Clapper', supplier_name='Joseph Enterprises', supplier_id=888, quantity=32),
 Product(number=1005, name='Phone Glove', supplier_name='Craig Ferguson', supplier_id=777, quantity=0),
 Product(number=1006, name='Veg-O-Matic', supplier_name='Ronco', supplier_id=999, quantity=9),
 Product(number=1007, name='Bass-O-Matic', supplier_name='Dan Aykroyd', supplier_id=666, quantity=25)}
[Product(number=1007, name='Bass-O-Matic', supplier_name='Dan Aykroyd', supplier_id=666, quantity=25),
 Product(number=1002, name='Chia Elmer Fudd', supplier_name='Joseph Enterprises', supplier_id=888, quantity=56),
 Product(number=1004, name='Clapper', supplier_name='Joseph Enterprises', supplier_id=888, quantity=32),
 Product(number=1001, name='Clapper Plus', supplier_name='Joseph Enterprises', supplier_id=888, quantity=44),
 Product(number=1005, name='Phone Glove', supplier_name='Craig Ferguson', supplier_id=777, quantity=0),
 Product(number=1003, name='Pocket Fisherman', supplier_name='Ronco', supplier_id=999, quantity=17),
 Product(number=1006, name='Veg-O-Matic', supplier_name='Ronco', supplier_id=999, quantity=9)]
1002

{1001: Product(number=1001, name='Clapper Plus', supplier_name='Joseph Enterprises', supplier_id=888, quantity=44),
 1002: Product(number=1002, name='Chia Elmer Fudd', supplier_name='Joseph Enterprises', supplier_id=888, quantity=56),
 1003: Product(number=1003, name='Pocket Fisherman', supplier_name='Ronco', supplier_id=999, quantity=17),
 1004: Product(number=1004, name='Clapper', supplier_name='Joseph Enterprises', supplier_id=888, quantity=32),
 1005: Product(number=1005, name='Phone Glove', supplier_name='Craig Ferguson', supplier_id=777, quantity=0),
 1006: Product(number=1006, name='Veg-O-Matic', supplier_name='Ronco', supplier_id=999, quantity=9),
 1007: Product(number=1007, name='Bass-O-Matic', supplier_name='Dan Aykroyd', supplier_id=666, quantity=25)}
[Product(number=1007, name='Bass-O-Matic', supplier_name='Dan Aykroyd', supplier_id=666, quantity=25),
 Product(number=1002, name='Chia Elmer Fudd', supplier_name='Joseph Enterprises', supplier_id=888, quantity=56),
 Product(number=1004, name='Clapper', supplier_name='Joseph Enterprises', supplier_id=888, quantity=32),
 Product(number=1001, name='Clapper Plus', supplier_name='Joseph Enterprises', supplier_id=888, quantity=44),
 Product(number=1005, name='Phone Glove', supplier_name='Craig Ferguson', supplier_id=777, quantity=0),
 Product(number=1003, name='Pocket Fisherman', supplier_name='Ronco', supplier_id=999, quantity=17),
 Product(number=1006, name='Veg-O-Matic', supplier_name='Ronco', supplier_id=999, quantity=9)]
1002
Product(number=1002, name='Chia Elmer Fudd', supplier_name='Joseph Enterprises', supplier_id=888, quantity=56)