计算嵌套字典

Calculating nested dictionaries

我越来越清楚,显然我不知道自己在做什么 :( 只是随意地咬得我无法咀嚼。

我想要得到的结果是:

People bought 9 of sirni.
Shop stock increased 10 of pizza.

我也有未解决的参考 burek_name 错误,但我想在突破计算后将其作为次要挑战来解决。作为第三个挑战,我知道我必须将数字处理成绝对值而不是 +-。当我被卡住时,请帮助我通过计算将我推向正确的方向!

感谢您的阅读!

burek_dict_0 = {"bureks": {
    "1": {
        "burek_name": "sirni",
        "burek_price": 1.8,
        "burek_available": 10
    },
    "2": {
        "burek_name": "mesni",
        "burek_price": 2,
        "burek_available": 10
    },
    "3": {
        "burek_name": "pizza",
        "burek_price": 1.9,
        "burek_available": 10
    }
}}

burek_dict_1 = {"bureks": {
    "1": {
        "burek_name": "sirni",
        "burek_price": 1.8,
        "burek_available": 1
    },
    "2": {
        "burek_name": "mesni",
        "burek_price": 2,
        "burek_available": 10
    },
    "3": {
        "burek_name": "pizza",
        "burek_price": 1.9,
        "burek_available": 20
    }
}}


def get_burek_avail():
    global burek_dict_0
    global burek_dict_1
    burek_available_0 = ""
    burek_available_1 = ""

    while True:

        for bureks, key in burek_dict_0.items():
            for key, burek_available in bureks.items():
                burek_available_0 = key['burek_available']

        for bureks, key in burek_dict_1.items():
            for key, burek_available in bureks.items():
                burek_available_1 = key['burek_available']

        if burek_available_0 - burek_available_1 > 0:
            sold = burek_available_0 - burek_available_1
            print(f"People bought {sold} of {burek_name}. ")

        if burek_available_0 - burek_available_1 < 0:
            sold = burek_available_0 - burek_available_1
            print(f"Shop stock increased {sold} of {burek_name}. ")

您在找这样的东西吗?

burek_dict_0 = {"bureks": {
    "1": {
        "burek_name": "sirni",
        "burek_price": 1.8,
        "burek_available": 10
    },
    "2": {
        "burek_name": "mesni",
        "burek_price": 2,
        "burek_available": 10
    },
    "3": {
        "burek_name": "pizza",
        "burek_price": 1.9,
        "burek_available": 10
    }
}}

burek_dict_1 = {"bureks": {
    "1": {
        "burek_name": "sirni",
        "burek_price": 1.8,
        "burek_available": 1
    },
    "2": {
        "burek_name": "mesni",
        "burek_price": 2,
        "burek_available": 10
    },
    "3": {
        "burek_name": "pizza",
        "burek_price": 1.9,
        "burek_available": 20
    }
}}


def get_burek_avail():
    burek_available_0 = 0
    burek_available_1 = 0

    bureks_0 = burek_dict_0['bureks'].values()
    bureks_1 = burek_dict_1['bureks'].values()
    
    for init, end in zip(bureks_0, bureks_1):
        burek_available_0 = init['burek_available']
        burek_available_1 = end['burek_available']
        burek_name = init['burek_name']

        if burek_available_0 > burek_available_1:
            sold = burek_available_0 - burek_available_1
            print(f"People bought {sold} of {burek_name}. ")

        if burek_available_0 < burek_available_1:
            sold = burek_available_1 - burek_available_0
            print(f"Shop stock increased {sold} of {burek_name}. ")

我使用zip()将两个字典的值配对在一起。

这是输出:

>>> get_burek_avail()
People bought 9 of sirni. 
Shop stock increased 10 of pizza.