I'm not sure I understand your question. I used food as my iteration variable because it seemed to be quite descriptive and usable as a variable name. If I change the name from "food" to "fruit" or anything else I run into the same problem. So I don't know that is where I am stuck.
But it seems you mean that I first must somehow define shopping_list within the function in order for this to work properly. I don't mean to sound dim, but since the list already exists and I am asking the function to loop through it, do I need to first define shopping_list? The total for shopping_list ends up correct (7.5 = 4 + 2 + 1.5), so I thought there was something wrong with the compute_bill(['apple']) portion.
I guess I'm wrong. Perhaps another nudge?