python-3.x - 空字典中的 all() 返回 True 和 any() 返回 False
问题描述
当我在 Python 中通过 dict.values() 调用 all() 和 any() 方法时,出现以下奇怪行为:
In [34]: empty_dict = {}
In [35]: not_empty_dict = {'a': '', 'b': 'anything'}
1 - 当我申请all()
并且 dict 为空(没有键)Python返回True
(???):
In [36]: all(empty_dict.values())
Out[36]: True
2 - 当我应用any()
它返回False
:
In [43]: any(empty_dict.values())
Out[43]: False
我只是想知道这是什么原因,有人可以解释发生了什么吗?使用all()
and any()
over not_empty_dict 将按预期工作:
In [45]: all(not_empty_dict.values())
Out[45]: False
In [46]: any(not_empty_dict.values())
Out[46]: True
解决方案
这是预期的行为。all
返回True
空的可迭代对象
如果可迭代对象的所有元素都为真(或可迭代对象为空),则返回 True
推荐阅读
- python - 熊猫:不正确的列名显示在数据框和 set_index 生成 KeyError
- javascript - 如何测试通过的功能?
- php - 使用 mySQL 和 PHP 填充列表框
- python - 在具有重叠列的一个键上合并熊猫数据报,选择第一个非空
- machine-learning - 机器学习模型泛化
- oracle-apex - 有没有办法根据项目的值改变区域标题的重音?
- python - 将捕获组与熊猫列中的给定模式匹配
- java - JavaFX、Maven:JLink 的替代品
- c# - Xamarin 应用程序异常:“引发了 Objective-C 异常。名称:NSInvalidArgumentException”
- mysql - 无法为列设置默认值