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
