字典缩小一个值并打印属于它的键

2024-06-16 10:58:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在整理一本字典,并试图通过它来确定“food\u type”中哪个字典键对应的值是“fruit”。到目前为止,我在下面的代码中最远的部分是:

def  fruit (food_type):


         for f in food_type.values():
                if f=="fruit" :
                    return(f)

fruit ({'apple': 'fruit', 'lettuce': 'veggie', 'banana':'fruit'})

它只返回“fruit”一次,所以如果这是我在本例中想要的,我不是100%,因为我的最终目标是将值反映回字典,并返回值为“fruit”的键。我知道为了得到一个值,你可以这样做:d[k]或d.get(k)等等

我正在为此查找以下输出:

["apple","banana"]

Tags: 代码inappleforreturnif字典food
3条回答

下面的代码将返回新字典,其中只包含值等于'fruit'的条目:

>>> d = {'apple': 'fruit', 'lettuce': 'veggie', 'banana':'fruit'}
>>> {k: v for k, v in d.items() if v == 'fruit'}
{'apple': 'fruit', 'banana': 'fruit'}

如果只需要键,只需对其调用keys()方法。你知道吗

这可能就是你想要的:

def  fruit (food_type):
    return [k for k in food_type if food_type[k] == "fruit"]

print fruit ({'apple': 'fruit', 'lettuce': 'veggie', 'banana':'fruit'})

# ['apple', 'banana']

您需要遍历(key, value)对,将匹配项累加到一个列表中,然后返回该列表。你知道吗

Alist comprehension很好地完成了工作:

def fruit(food_type):
    return [k for k, v in food_type.items() if v == 'fruit']

相关问题 更多 >