python随机抽样后检查

2024-04-24 06:25:16 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的第一个小项目和第一个问题,所以格式抱歉。我有两个列表,其中包含作为字符串的配方名称。我想问用户每个列表中他们需要多少餐,然后随机选择。你知道吗

然后我想检查一顿饭是否是通过选择来选择的,并显示将存储在变量中的饭的价格。你知道吗

我的想法是将随机样本添加到新列表中,并通过if-in语句检查内容。如果菜谱在新列表中,那么它将打印包含价格的变量。你知道吗

但是,当我查看新的食谱列表时,它认为它不在列表中。有什么我错过的或者更好的方法吗?非常感谢。你知道吗

到目前为止我的代码是:

import random
Vegetarian = ["Jungle Curry", "Chickpea Curry", "Dhal", "Buddha Bowl", 
"Chickpea Salad", "Lazy Noodles", "Fry Up"]
Meat = ["Chilli", "Butter Chicken", "Lamb and Hummus"]

v = int(raw_input("How many vegetarian meals this week? > "))
m = int(raw_input("How many meaty meals? > "))

Veg1 = random.sample(Vegetarian, v)
Meat2 = random.sample(Meat, m)

veg_week = []
meat_week = []

veg_week.append(Veg1)
meat_week.append(Meat2)

jungle_curry = 10
chickpea_curry = 10

if "Jungle Curry" and "Chickpea Curry" in veg_week:
    print jungle_curry + chickpea_curry

Tags: andin列表if价格randomintweek
2条回答

我会这样做的

import random

Vegetarian = ["Jungle Curry", "Chickpea Curry", "Dhal", "Buddha Bowl",
          "Chickpea Salad", "Lazy Noodles", "Fry Up"]
Meat = ["Chilli", "Butter Chicken", "Lamb and Hummus"]

v = int(raw_input("How many vegetarian meals this week? > "))
m = int(raw_input("How many meaty meals? > "))

Veg1 = random.sample(Vegetarian, v)
Meat2 = random.sample(Meat, m)

veg_week = []
meat_week = []

veg_week.append(Veg1)
meat_week.append(Meat2)

# put the prices of each in the list too 
Vegetarian_price = [10, 10, 10, 10, 10, 10, 10]
Meat_price = [20, 20, 20]

v_cost = 0
m_cost = 0
for i in range(len(Veg1)):
    v_cost += Vegetarian_price[Vegetarian.index(Veg1[i])]

for i in range(len(Meat2)):
    m_cost += Meat_price[Meat.index(Meat2[i])]

print v_cost,m_cost

你有几个错误,让我们来看看:

  • random.sample的结果是一个列表;当您调用veg时_周。追加(Veg1',您正在创建一个列表列表。你知道吗
  • 之后,将值10赋给jungle_currychickpea_curry
  • 然后,您要检查"Jungle Curry""Chickpea Curry"是否都在所选的示例中;也许您要逐个检查这些是否在本周的菜单中?你知道吗

这应该更有效:

import random

Vegetarian = ["Jungle Curry", "Chickpea Curry", "Dhal", "Buddha Bowl", 
"Chickpea Salad", "Lazy Noodles", "Fry Up"]
Meat = ["Chilli", "Butter Chicken", "Lamb and Hummus"]

v = int(input("How many vegetarian meals this week? > "))
m = int(input("How many meaty meals? > "))

Veg1 = random.sample(Vegetarian, v)
Meat2 = random.sample(Meat, m)

if "Jungle Curry" and "Chickpea Curry" in veg1:
    print(jungle_curry + chickpea_curry)

相关问题 更多 >