A variable is a customizable value. Variables can only hold one value at a time. These values can be anything that consists of text.
Variables are used whenever a value must be stored - ie. if a project required the user to input a name and then remember that name, the name would be stored in a variable. With this, the name can be retrieved at any time; all the program has to do is check the value of the variable (which is the name).
A list is made of items - each item is like a variable. Lists can be useful when many variables are needed.