如何检查字典中的list元素是否与字典中的键相同,然后将键的值与list元素一起打印


recipedict = {'sandwich':['a buttered sandwich',[['bread','13'],['butter','4']]]}
supplydict = {'bread':['150','15','james'],'butter':['15','12','allen'],'sugar':['15','12','marc']}
supplierdict = {"james":'12345234',"allen":'17682342'}

以为例,我有这3本字典。我需要检查倒数第二个值的内部元素是否在供给字典中。所以检查一下面包和黄油是否在供应字典里。如果面包和黄油在供应目录中,则获取供应目录的第二个值(在本例中是james和allen),并获取供应商目录中的第一个值。然后打印彼此关联的值

ingredient: bread
amount needed: 13
supplier: james
supplier contact: 12345234

ingredient: butter
amount needed: 4
supplier: allen
supplie contact: 17682342

我试着把所有的列表放在一起,但我只打印整个列表与相关的字典值

def flatten(l):
return [item for sublist in l for item in sublist]
for key, value in recipedict.items():
onevalue = value[1]
#print(onevalue)
actuallist = [item[0] for item in onevalue]
valew = []
for k in actuallist:
if k in supplydict:

valuee = supplydict.get(k)
valew.append(valuee[2])
print(valew)
z = flatten(onevalue)
#print(y)
n = 1
word = valew
for i in range(n, len(onevalue) + n, n + 1):
onevalue.insert(i, word)
print(onevalue)

试试这个:

goal = 'sandwich'
for ingredient, needed in recipedict[goal][1]:
_, _, supplier = supplydict[ingredient]
contact = supplierdict[supplier]
print('ingredient', ingredient)
print('amount needed', needed)
print('supplier', supplier)
print('supplier contact', contact)
print()

最新更新