首页 > 解决方案 > Python字典中的列表

问题描述

好的,所以我刚开始使用 Python,并且在字典中遇到了一个列表。

items_available = {
    "orders": [1, 5, 10, 15, 20, 220, 330, 1000],
    "grapes": {"green": 3, "purple": 7, "white": 1},
    "litres_water": [1, 1.5, 2, 5, 10],
    "bread": 27
}

我需要以某种方式分别获取葡萄部分的所有信息,我对如何做到这一点感到困惑。例如。我之前确定了客户想要的葡萄数量和颜色。然后我需要检查它是否可以从上面给出的列表中获得。

我试着像这样编码

amount_of_grape_packs_needed = order_details[3] # amount the customer is requesting. Found previously. 
av_grapes = items_available.get('grapes')
max_available = amount_of_grape_packs_needed in av_grapesdesired_colour = order_details[2] in av_grapes
enough_packs = grape_amount_needed in max_available

??????一团糟。我知道。我还尝试从字典中提取葡萄作为列表,然后只使用列表。但我把那弄得一团糟。

任何帮助将不胜感激,请。多谢你们

(请原谅任何格式错误等,这是我第一次使用堆栈溢出:))

标签: pythonlistdictionarysearchextract

解决方案


据我了解,这就是你想要做的。

用户输入所需的葡萄数量 ( n) 和葡萄颜色 ( color)。

该函数check()检查用户订购的葡萄是否存在。

items_available = {
    "orders": [1, 5, 10, 15, 20, 220, 330, 1000],
    "grapes": {"green": 3, "purple": 7, "white": 1},
    "litres_water": [1, 1.5, 2, 5, 10],
    "bread": 27
}


def check(color, n):
    data = items_available.get('grapes')
    if data[color] >= n:
        return f"Enough {color} grapes."
    else:
        return f"Not enough {color} grapes."
        
print(check('green',2))
print(check('white',4))
Enough green grapes.
Not enough white grapes.

推荐阅读