gpt4 book ai didi

python - 是否可以创建字典 "template"?

转载 作者:太空狗 更新时间:2023-10-29 20:12:38 26 4
gpt4 key购买 nike

我正在创建一个食谱选择器,并希望创建一个统一的字典模板。我目前有这样的东西:

menu_item_var = {'name': "Menu Item", 'ing': (ingredients)}

我担心为每个 menu_item_var 重新键入 nameing,为了节省时间和可能因误键而造成的灾难。我知道我可以将 Menu Item 添加为我的 tuple 中的项目 0, 删除 dict 并运行 for 循环使字典更安全,但这不会将原始 menu_item_vartuple 转换为 dict。有没有“更聪明”的方法来做到这一点?

最佳答案

我可能会建议考虑创建一个类并使用 OOP 代替类似这样的东西。

class Recipe:
def __init__(self,name,ingredients):
self.name = name
self.ingredients = ingredients
def __str__(self):
return "{name}: {ingredients}".format(name=self.name,ingredients=self.ingredients)

toast = Recipe("toast",("bread"))
sandwich = Recipe("sandwich",("bread","butter","ham","cheese","butter","bread"))

随着您的"template"变得越来越复杂,它变得不仅仅是数据定义,而且需要逻辑。使用类将允许您封装它。

例如,上面我们的三明治有 2 个面包和 2 个黄油。我们可能希望在内部跟踪这一点,如下所示:

class Recipe:
def __init__(self,name,ingredients):
self.name = name
self.ingredients = {}
for i in ingredients:
self.addIngredient(i)
def addIngredient(self, ingredient):
count = self.ingredients.get(ingredient,0)
self.ingredients[ingredient] = count + 1
def __str__(self):
out = "{name}: \n".format(name=self.name)
for ingredient in self.ingredients.keys():
count = self.ingredients[ingredient]
out += "\t{c} x {i}\n".format(c=count,i=ingredient)
return out

sandwich = Recipe("sandwich",("bread","butter","ham","cheese","butter","bread"))
print str(sandwich)

这给了我们:

sandwich:
2 x butter
1 x cheese
1 x ham
2 x bread

关于python - 是否可以创建字典 "template"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19673376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com