python - 用键和值按字典计算列表中出现的次数
问题描述
使用字典,我试图找出键是否与值一样多次(或更多)出现。因此,例如,我有一个看起来像这样的字典:
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() )
推荐阅读
- python - 修复 try 和 except 中的无效语法错误
- android - Android 中用于 Cast 连接的广播接收器
- css - 从右向左滑动背景图像,然后从左向右滑动
- javascript - 如何在完整日历中获取日期和倾斜 onclick 标题
- python-3.x - Mongodb upsert 文档或 $addToSet
- angularjs - 使用angularjs在模态上绑定编辑数据
- laravel - Minishift - 如何编辑从 bitbucket 存储库部署的项目的文件
- arrays - 将值写入动态数组 VBA
- css - Prestashop 1.6 上没有显示一些很棒的字体
- python - Change JSON data received