Python 3:如何创建一个包含多个词典的词典,并且键也具有多个值?

时间:2018-09-30 03:54:23

标签: python-3.x dictionary set key-value inventory

我一直在为库存类型的系统编写代码,而这一次我一直在使用Drawable只是为了意识到其中的字符串/数字不正确。

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

dict()

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

简单地说:

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

我的代码:

https://pastebin.com/gu5DJX5K 现在搜索了一段时间,找不到适合我的类似代码示例。

1 个答案:

答案 0 :(得分:1)

字典也不排序-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