使用键和值按字典计算列表中出现的次数

使用字典,我试图找出键出现的次数(或更多)是否与值一样多。因此,例如我有一个看起来像这样的字典:

expected = { "blue": 2, "red": 1 }

和一个看起来像这样的列表:

results = [ 'green', 'blue', 'blue', 'red' ]

我需要查看蓝色是否出现 2 次或更多次,红色是否出现 1 次或更多次。解决这个问题的最佳方法是什么?我试过了:

for k, v in expected.items():
  if results.count(k) >= v:
    // return

但这将匹配任一键,而不是严格检查整个列表。

回答

你需要他们的所有是至少一样大。这意味着您必须完成循环才能返回成功。任何失败都意味着您可以立即返回。

for k, v in expected.items():
    if results.count(k) < v:
        return False

return True

或者,使用该all函数将其放入一行:

return all(results.count(k) >= v for k, v in expected.items() )


以上是使用键和值按字典计算列表中出现的次数的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>