Jun-07-2020, 12:32 PM
menu = [] menu.append(["egg", "spam", "bacon"]) menu.append(["egg", "sausage", "bacon"]) menu.append(["egg", "spam"]) menu.append(["egg", "bacon", "spam"]) menu.append(["egg", "bacon", "sausage", "spam"]) menu.append(["spam", "bacon", "sausage", "spam"]) # should only print out this one menu.append(["spam", "Egg", "spam", "spam", "bacon", "spam"]) menu.append(["spam", "Egg", "sausage", "spam"]) # print(menu) for meal in menu: for ingredient in meal: if ingredient.lower() != "egg": print(meal)I want to only print out the meal which does not contain "egg". In the menu variable, I have purposely appended lists which contain an uppercase "Egg". Therefore when I go through each meal in menu, and each ingredient in meal, I will convert ingredient to lower case so that it does not matter if the ingredient is "Egg" or "egg" in a meal.
Output:
['egg', 'spam', 'bacon']
['egg', 'spam', 'bacon']
['egg', 'sausage', 'bacon']
['egg', 'sausage', 'bacon']
['egg', 'spam']
['egg', 'bacon', 'spam']
['egg', 'bacon', 'spam']
['egg', 'bacon', 'sausage', 'spam']
['egg', 'bacon', 'sausage', 'spam']
['egg', 'bacon', 'sausage', 'spam']
['spam', 'bacon', 'sausage', 'spam']
['spam', 'bacon', 'sausage', 'spam']
['spam', 'bacon', 'sausage', 'spam']
['spam', 'bacon', 'sausage', 'spam']
['spam', 'Egg', 'spam', 'spam', 'bacon', 'spam']
['spam', 'Egg', 'spam', 'spam', 'bacon', 'spam']
['spam', 'Egg', 'spam', 'spam', 'bacon', 'spam']
['spam', 'Egg', 'spam', 'spam', 'bacon', 'spam']
['spam', 'Egg', 'spam', 'spam', 'bacon', 'spam']
['spam', 'Egg', 'sausage', 'spam']
['spam', 'Egg', 'sausage', 'spam']
['spam', 'Egg', 'sausage', 'spam']
It should only print out the meal: ['spam', 'bacon', 'sausage', 'spam']
But as you can see this is not the case
Any reason why?
Thanks in advance,
Python beginner