繁体   English   中英

如何检查字典中的列表元素是否与字典中的键相同,然后用列表元素打印键的值

[英]How to check if list element in a dictionary is the same as the key in a dictionary and then print the value of the key with the list element

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 部词典。 我需要检查 recipedict 的第二个值的内部元素是否在供应字典中。 所以检查面包和黄油是否在供应指令中。 如果 bread and butter 在 supplydict 中,则获取 supplydict 的第二个值,在本例中为 james and allen,并获取 supplier dict 中的第一个值。 然后打印相互关联的值

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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM