查找字典中特定值的数量[Python]

时间:2018-05-05 21:45:48

标签: python dictionary

我有一个字典,每个人分配了最喜欢的颜色:

fav_colors = {"John": "green", "Bobby": "blue", "PapaSanta": "yellow"}

首先,我只是想确定这是否是在字典中分配值的正确方法!我对python很陌生。

然后我有了这个

def use_favcolors(fav_color):

在这个功能中,我想看看有多少人最喜欢的颜色是绿色。我想创建一个for循环,然后为每个" green"增加1。在fav_color中,但我不太确定如何执行此操作。我还必须创建一个main函数,它使用这个use_favcolors函数并输出" greens"的数量。

有人可以帮忙吗?

提前致谢

*这怎么太宽?我见过其他问题同样的问题?我会使用这些线程,但答案不是我正在寻找的。

2 个答案:

答案 0 :(得分:1)

使用sum(),迭代dict.values()

def use_favcolors(fav_color):
    return sum(color == fav_color for color in fav_colors.values())

布尔值color == fav_color会自动转换为0 / 1

答案 1 :(得分:0)

你可以使用dicts .values()方法。

fav_colors = {"John": "green", "Bobby": "blue", "PapaSanta": "yellow"}

def use_favcolors(fav_color):
    count = 0
    for colour in fav_colors.values():
        if colour == fav_color:
            count += 1
    return count

print(use_favcolors("green"))

输出:

1

.values()将返回值的迭代器: ['green', 'blue', 'yellow']

其他有用的方法是.keys().items

.keys()将在键上返回一个迭代器: ['John', 'Bobby', 'PapaSanta']

.items()将返回键值对的迭代器: [('John', 'green'), ('Bobby', 'blue'), ('PapaSanta', 'yellow')]