我有一个dict,它的键是西班牙食谱的名称,值是另一个字典,其中包含该配料的键=配料,值=qt:
new_dic = {
'Conejo al ajillo': {
'hoja de laurel': '1',
'ccs de aceite': '50',
'cabeza de ajos': '1',
'vaso de vino': '1',
'kilos de conejo': '1.5',
'guindillas': '3'},
'Pimientos verdes rellenos de codornices.': {
'ccs de aceite': '80',
'cucharadas de agua': '2',
'dientes de ajo': '2',
'cebolla': '1',
'cucharada de chocolate rallado ': '1',
'codornices': '6',
'cucharada de harina': '1',
'vaso de jerez seco': '1',
'pimientos verdes grandes': '6',
'gramos de sal': '5',
'gramos de tocino de jamón': '50'},
'Pollo a la leonesa.': {
'cucharadas de jerez': '2',
'huevo': '1',
'gramos de jamon': '50',
'gramos de trufa en lata ': '25',
'ccs de leche': '100',
'manzana reineta': '1',
'gramos de menudillos de pollo': '200',
'gramos de miga de pan ': '100',
'kilos de pollo': '1.5',
'gramos de tocino': '50',
'ccs de aceite': '50',
'gramos de manteca': '50'},
'Pollo de corral al chilindron': {
'ccs de aceite': '150',
'dientes de ajo': '6',
'gramos de cebolla ': '400',
'gramos de harina': '60',
'hoja de laurel': '1',
'pizca de pimienta': '1',
'kilos de pollo': '2',
'pizca de sal': '1',
'gramos de tomate frito': '50',
'gramos de tomates ': '300',
'ramito de tomillo': '1',
'pimientos verdes': '2'},
'Pavo relleno de castanas': {
'cucharadas de caldo': '7',
'gramos de castanas cocidas ': '500',
'cucharada de harina': '1',
'gramos de magro de cerdo ': '250',
'gramos de manteca': '100',
'kilos de pavo tierno': '2.5',
'cucharadita de pimienta ': '1',
'pizca de sal': '1',
'pavo': '1'},
'Conejo a la castellana.': {
'cucharadas de aceite ': '7',
'vaso de agua': '1',
'vaso de caldo': '1',
'conejo': '1',
'cucharada de harina ': '1',
'gramos de jamon': '50',
'gramos de manteca de cerdo ': '50',
'gramos de pan': '150',
'pizca de sal': '1',
'vasito de vino blanco': '1'},
'Gazpacho manchego': {
'cucharadas de aceite de oliva ': '6',
'dientes de ajo': '4',
'gramos de conejo': '400',
'pizca de pimenton dulce': '1',
'pizca de pimienta': '1',
'pellizco de sal': '1',
'gramos de tomate ': '30',
'torta manchega': '1'},
'Lomo de ciervo en salsa de setas y trufa.': {
'ccs de aceite de oliva': '180',
'dientes de ajos': '6',
'gramos de cebollas pequenas': '200',
'hoja de laurel': '1',
'filetes de lomo de ciervo de unos ': '12',
'gramos cada uno ': '75',
'taza de nata liquida': '1',
'cucharadita de oregano': '1',
'cucharadas de pimenton dulce ': '2',
'pizca de sal': '1',
'gramos de setas cocidas': '200',
'cucharaditas de tomillo': '0.5',
'trufa en aguardiente': '1'}
...}
我创建了一个标准化变量,以便将所有的量标准化为克
standardize={
'alcachofas':200,
'apio': 400,
'berenjena': 180,
'berenjenas': 180,
'cabeza': 150,
'cabezas': 150,
'calabacin': 200,
'cebolla': 75,
'cebolletas': 75,
'chorreon': 10,
'chorreon': 10,
'chorreton': 10,
'chorrito': 5,
'chuchradas':10,
'cigalas': 80,
'clavo': 3,
'clavos': 3,
'cocochas': 70,
'codornices': 80,
'conejo':80,
'copa':100
... }
我试图创建一个函数,该函数可以遍历Standardized和new_dict,每次new_dict包含Standardized中的成分时,它都会通过乘以其旧值*Standardized值来更改其值
例如,在第一个配方中,有一个“cabeza”,在标准化中,它的值是150,所以我想从这里转换过来
{'Conejo al ajillo': {'hoja de laurel': '1',
'ccs de aceite': '50',
'cabeza de ajos': '1',
...
对此
{'Conejo al ajillo': {'hoja de laurel': '1',
'ccs de aceite': '50',
'cabeza de ajos': '150',
...
因为1*150等于150(这意味着它的值以克为单位)
我一直在尝试,我很接近,但同时我认为,这是我的代码:
def stand(dic):
for e in standardize:
for i in dic.values():
for key,value in i.items():
if e in key:
#print(i)
#print(key)
#print(value)
#print(e)
value = float(value)*float(standardize[e])
print(value)
return dic
它返回我想要的值,但我不会在new_dict中更改它
有什么帮助吗
提前非常感谢
您需要更新字典本身,而不仅仅是
value
变量请注意,您可以通过直接在
standardize
中测试字典成员身份来简化方法,而不是在其键上循环:当您执行
value = float(value)*float(standardize[e])
时,您告诉Python创建一个新变量value
,并在那里分配响应。因此,您永远不会更新字典中的值如果您希望将结果分配回其来源的词典,您可以执行以下操作:
正如其他人提到的,您正在创建一个新变量
value
,而不是更新关联的字典。下面是一个实现目标的可读方法输出
您可以使用
print(json.dumps(stand(new_dic), indent=4))
将输出格式化为此可读格式相关问题 更多 >
编程相关推荐