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
我一直在为库存类型的系统编写代码,一直以来我一直在使用 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