Python 3:如何创建一个包含多个字典且其中的键也有多个值的字典?

Python 3: How to create a Dictionary with multiple dictionaries in it and where the keys also have multiple values?

我一直在为库存类型的系统编写代码,一直以来我一直在使用 set() 才意识到其中的 strings/numbers 不符合顺序。

所以我将再次重写我的代码,并改用 dict()。但是,我仍然不知道如何采用这种方法。我希望我的输出是这样的:

{'fruits':{'apple':{20, 15}},{'orange':{10, 12}}}, {'veggies':{'cucumber':{30, 20}}, {'cabbage':{40, 15}}}}

注意:我不确定我应该使用方括号还是大括号作为示例

简单地说:

Fruits & Veggies - Inventory Names
Apple and Orange - Items in the Inventory
10, 30 & 40 - Number of stocks of the item
12, 20,& 15 - Amount of each item

我的代码:

https://pastebin.com/gu5DJX5K 已经搜索了一段时间,但找不到我可以应用到我的代码的类似示例。

字典也没有排序 - Python 中的集合和字典都使用不保留排序的哈希表。如果您需要排序,您应该使用 类 或列表。

如果您无论如何都使用字典,那么将一个字典中的值作为另一个字典是完全没问题的。要为一个键设置多个值,请将这些值存储在一个列表中,与该键对应的值将是列表(或者如果您不需要排序,则为一个集合)。

它看起来像:

{"fruits" => {"apple" => [20, 15]
              "orange" => [10, 12]}
 "veggies" => {"cucumber" => [30, 20]
               "cabbage" => [40, 15]}}

但是,我强烈建议您不要对任何事情都使用字典。 类 使用起来更干净。我会推荐一些类似的东西:

class Inventory:
    def __init__(self, fruits, veggies):
        self.fruits = fruits # list of Items
        self.veggies = veggies # another list of Items

class Item:
    def __init__(self, name, stock, amount):
        self.name = name # a string
        self.stock = stock # an int
        self.amount = amount # an int