gpt4 book ai didi

python - 有没有办法根据字典的值检查成员资格?确定之后,我们还可以做其他事情吗?

转载 作者:行者123 更新时间:2023-12-01 06:17:44 30 4
gpt4 key购买 nike

我知道检查字典中的键是否可用非常容易,但是某些值呢?

所以,我这里有一个列表字典,为了保持一致性,其中的键引用了一组字符串。它看起来有点像这样:

menu = {'breakfast':['soft-boiled eggs', 'hash brown', 'Earl Grey'], 
'lunch':['pasta', 'soup'],
'dinner':['chips', 'beef stew', 'veggies']}

现在我想做的是检查'chips'是否在我的菜单中,如果是,我想用'crusty bread'替换它。我知道我可以尝试在菜单['午餐'] 中使用'chips' 或相同的早餐,但如果我不知道何时供应怎么办?



扩展



虽然这很难解释,但假设我们有一个名为 Food 的类,其定义如下:



class Food(object):
def __init__(self, meal):
self.meal = meal
self.ingredients = collections.defaultdict(set)
def __str__(self):
return "%s" %(self.meal)

这里,指的是早餐、午餐或晚餐。我们有ingredients,它是一个集合字典。 'potatoes' 是一种配料,键入后我们会显示相关菜肴:薯饼、薯条。因此,当我为我的函数调用 print meal, menu[meal].ingredients 时,我得到以下结果(这仅适用于早餐,因为这就是我放入的全部内容):

breakfast defaultdict(<type 'set'>, {'potatoes': set(['chips', 'hash brown']), 'eggs': set(['omelette', 'hard-boiled', 'soft-boiled']), 'tea': set(['Assam', 'Earl Grey', 'English'])})

所以这基本上就是针对特定“成分”的早餐。

现在,让我们假设最坏的情况已经发生,我的土 bean 已经用完了!我现在想做的是将 'potatoes' 替换为 'bread',在其下我将拥有值/类型 'roll'、'crusty ','棕色'。人们会怎样做呢?

最糟糕的是,快到午餐时间时,我们的'阿萨姆'茶就喝完了。与扩展之前的问题类似,我将如何删除它(在检查它是否存在之后)?

最佳答案

菜单中的成员(member)资格很简单:

[k for k, v in menu.iteritems() if 'chips' in v]

使用 defaultdict 的成员资格的工作方式完全相同,因为包含检查不会改变它。

关于python - 有没有办法根据字典的值检查成员资格?确定之后,我们还可以做其他事情吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2304749/

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