Как проверить, какие введенные пользователем элементы находятся в списке, и рассчитать / вывести из него стоимость?

#python

#python

Вопрос:

Итак, я создаю эту программу, которая включает в себя код, запрашивающий у пользователя товары, которые он хотел бы приобрести, и эти товары затем добавляются в список. Мой вопрос заключается в следующем: поскольку элементы добавляются в список, и каждый элемент имеет денежную стоимость, как мне проверить, есть ли определенный / группа элементов в прилагаемом списке, и, таким образом, рассчитать общую стоимость?

например, пользовательские вводимые Chicken и Pork , и эти элементы добавляются в userOrder список.

Как бы я проверил, содержит ли userOrder список эти несколько элементов, а не другие элементы, и как бы я тогда со следующими элементами в списке мог рассчитать общую стоимость?

Я пытался использовать if x in list , но я не знаю, как реализовать это таким образом, чтобы проверялось несколько элементов, буду ли я использовать and или or ?

 def userChoose(decide):
    if decide == "Yes":
        pizzaPurch=input("Please enter the Pizza(s) you would like to
        purchase")
        userOrder.append(pizzaPurch)
        print("You purchased the following:")
        print(userOrder)

    if decide == "No":
       pizzaPurch=input("Please enter the pizza(s) you would like to
       purchase")
       userOrder.append(pizzaPurch)
       print("You purchased the following:")
       print(userOrder)
       return pizzaPurch, userOrder


banner()
decide = pizzaReg()
pizzaPrem(decide)
userChoose(decide)

if 'Pepperoni' in userOrder:
    print("You included Pepperoni Pizza in your purchase list")
  

Я хотел бы сделать так, чтобы после ввода пользователем элементов, которые он хотел бы приобрести, и, таким образом, добавлялся в список, код проверял, какие элементы включены, а какие нет, и оттуда вычислял общую стоимость. Код неполный, поскольку я в растерянности и, следовательно, не могу предоставить фактические результаты.

Комментарии:

1. Вы задаете довольно много вопросов. Вероятно, вам следует их разбить.

2. Одна проблема, которую я вижу, заключается в том, что if decide == "Yes" userChoose() функция вернет None .

Ответ №1:

Я не уверен на 100%, чего именно вы хотите, но если вы хотите просто сравнить два списка, то вы можете сделать это следующим образом:

 userOrder = ['chicken', 'carrot', 'pork', 'onion']
pattern = ['pork','chicken']

matched = [item for item in pattern if item in userOrder]
matched

Output:
['pork', 'chicken']