gpt4 book ai didi

python - 如果列表中存在值,则返回键(来自字典)

转载 作者:行者123 更新时间:2023-12-04 14:02:56 28 4
gpt4 key购买 nike

我有一本字典:

meals = {'Pasta Bolognese' : ['pasta', 'tomato sauce', 'ground beef'],
'Cold Salad' : ['greens', 'tomato'],
'Warm Salad' : ['greens', 'tomato', 'corn', 'chickpeas', 'quinoa'],
'Sandwich' : ['bread', 'turkey slices', 'cheese', 'sauce']}

和一个列表:

ingredients = ['bread', 'chickpeas', 'tomato', 'greens']

如果它的所有值都存在于列表中,我想从字典中获取一个键。所以对于目前的情况,我想要“冷沙拉”,因为“蔬菜”和“番茄”都在列表中。

最佳答案

你可以使用:

>>> next((k for k, v in meals.items() if set(v).issubset(ingredients)))
'Cold Salad'
>>>

请注意,这段代码使用了带有 next 的生成器,也是为了更有效地拥有多个 in 语句,而不是 all和一个带有 in 的循环,我使用了 set.issubset检查一组中的所有值是否都是另一组的子集

如果可能没有匹配,在末尾添加一个None:

next((k for k, v in meals.items() if set(v).issubset(ingredients)), None)

或者任何东西,您可以将 None 替换为任何东西,即 "No Match"

关于python - 如果列表中存在值,则返回键(来自字典),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69444908/

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