-
Notifications
You must be signed in to change notification settings - Fork 0
/
013. inventory management.py
68 lines (56 loc) · 2.19 KB
/
013. inventory management.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
"""
Learn about dicts by managing warehouse inventory.
"""
"""Functions to keep track and alter inventory."""
def create_inventory(items):
"""Create a dict that tracks the amount (count) of each element on the `items` list.
:param items: list - list of items to create an inventory from.
:return: dict - the inventory dictionary.
"""
dictionary = {}
for item in items:
if item not in dictionary:
dictionary[item] = 0
dictionary[item] += 1
return dictionary
def add_items(inventory, items):
"""Add or increment items in inventory using elements from the items `list`.
:param inventory: dict - dictionary of existing inventory.
:param items: list - list of items to update the inventory with.
:return: dict - the inventory updated with the new items.
"""
for item in items:
if item not in inventory:
inventory[item] = 0
inventory[item] += 1
return inventory
def decrement_items(inventory, items):
"""Decrement items in inventory using elements from the `items` list.
:param inventory: dict - inventory dictionary.
:param items: list - list of items to decrement from the inventory.
:return: dict - updated inventory with items decremented.
"""
for item in items:
if inventory[item] > 0:
inventory[item] -= 1
return inventory
def remove_item(inventory, item):
"""Remove item from inventory if it matches `item` string.
:param inventory: dict - inventory dictionary.
:param item: str - item to remove from the inventory.
:return: dict - updated inventory with item removed. Current inventory if item does not match.
"""
if item in inventory:
inventory.pop(item)
return inventory
return inventory
def list_inventory(inventory):
"""Create a list containing all (item_name, item_count) pairs in inventory.
:param inventory: dict - an inventory dictionary.
:return: list of tuples - list of key, value pairs from the inventory dictionary.
"""
list_of_tuples = []
for item, quantity in inventory.items():
if inventory[item] > 0:
list_of_tuples.append((item, quantity))
return list_of_tuples