You should view the resources here (lesson 10) and the relevant book chapter 9 before continuing here.
A python dict is a keymap, with some of the important features being:
a dict is mutable
dict keys MUST be immutable such as a str, int, float, or tuple
dict values may be any object type, including list, tuple, int, str or even another dict
a dict is iterable
the access time for a dict is very fast, regardless of the size of the dict. In BigO notation, the time complexity to access a value with a given key is O(1). Learn about BigO notation.
Just as with a list - another mutable object - passing a dict to a function will pass by reference, not by value. This means that when a function receives a dict object, any changes made to that dict inside the function are made to the dict in global space. Because of this, if you make changes to a dict object inside a function, there is no need to return the mutated dict, as the changes are made to the actual dict.
We have used helper functions such as title_gen, menu_gen, get_int and so on.
The following video details a way to build a shopping basket.
Re-write this application using the helper functions we have used before, with the end result being the following: